3. Difference Between Filtered Even- and Odd-Index Sums

1. Description

You are given an integer array numbers.
Return the sum of valid elements at even indices minus the sum of valid elements at odd indices, where valid values are in the range [-100, 100].

2. Solution

Filtering with Index Parity

n = numbers.size()
Time complexity: O(n)
Space complexity: O(1)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
// Keep values in [-100, 100] and accumulate them by their original index parity.
int solution(const vector<int>& numbers) {
    int even_sum = 0, odd_sum = 0;
    for (int i = 0, n = numbers.size(); i < n; ++i) {
        if (-100 <= numbers[i] && numbers[i] <= 100) {
            if (i % 2 == 0) {
                even_sum += numbers[i];
            } else {
                odd_sum += numbers[i];
            }
        }
    }

    return even_sum - odd_sum;
}
comments powered by Disqus