```python
def count_nums(arr):
    """
    Write a function count_nums which takes an array of integers and returns
    the number of elements which has a sum of digits > 0.
    If a number is negative, then its first signed digit will be negative:
    e.g. -123 has signed digits -1, 2, and 3.
    >>> count_nums([]) == 0
    >>> count_nums([-1, 11, -11]) == 1
    >>> count_nums([1, 1, 2]) == 3
    """
    count = 0
    for num in arr:
        if num < 0:
            # For negative numbers, the first digit is negative
            # e.g., -123 has digits -1, 2, 3
            digits_sum = -abs(num) % 10  # This won't work correctly
            # Let's think more carefully:
            # For -123: digits are -1, 2, 3. Sum = -1 + 2 + 3 = 4
            # For -11: digits are -1, 1. Sum = -1 + 1 = 0
            # For -1: digits are -1. Sum = -1
            # So for negative numbers, we need to handle the sign separately.
            # The first digit (most significant) is negative, the rest are positive.
            # We can compute the sum of digits as follows:
            # Take the absolute value, get its digits, make the first digit negative.
            abs_num = abs(num)
            digits = []
            temp = abs_num
            while temp > 0:
                digits.append(temp % 10)
                temp //= 10
            # digits are in reverse order (least significant first)
            # The most significant digit is the last one in this list
            # For negative numbers, the most significant digit should be negative
            digit_sum = 0
            for i, d in enumerate(digits):
                if i == len(digits) - 1:  # most significant digit
                    digit_sum -= d
                else:
                    digit_sum += d
            if digit_sum > 0:
                count += 1
        else:
            # For positive numbers, sum all digits
            digit_sum = 0
            temp = num
            while temp > 0:
                digit_sum += temp % 10
                temp //= 10
            if digit_sum > 0:
                count += 1
    return count
```