class { public: intpivotIndex(vector<int>& nums){ int sum = 0; int cursum = 0; for (int num : nums) { sum += num; } for (int i = 0; i < nums.size(); i++) { if (sum - nums[i] == 2*cursum) { return i; } cursum += nums[i]; } return-1; } };
维护两个变量maxn 与 sec 分别记录数组的最大值和次大值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
class { public: intdominantIndex(vector<int>& nums){ int maxn = INT_MIN, idx = -1, sec = INT_MIN; for (int i = 0; i < nums.size(); i++) { if (nums[i] > maxn) { sec = maxn; maxn = nums[i]; idx = i; } elseif(nums[i] > sec){ sec = nums[i]; } } return sec * 2 > maxn ? -1 : idx; } };
近期评论