题意:给出一个序列,求出这个序列中,所有唯一元素的和
题解:开个map或者计数数组,遍历一遍这个序列,统计一下每个数字出现的次数,把计数数组为1的i输出即可
classSolution{public:int a[105];intsumOfUnique(vector<int>& nums){for(int i : nums) a[i -0]++;int ans =0;for(int i =1; i <=100; i++)if(a[i]==1) ans += i;return ans;}};
5658. 任意子数组和的绝对值的最大值(前缀和)
题意:求出nums中 和的绝对值 最大的任意子数组。
看清楚题意是 “和的绝对值” 的 “最大值”
把数组记录前缀和,因为是任意子数组:那么答案只有3种:
(1) 前缀和的最小值
(2) 前缀和的最大值
(3) 前缀和 (最大值 - 最小值) 的绝对值
classSolution{public:int sum[100010];intmaxAbsoluteSum(vector<int>& nums){for(int i =1; i < nums.size(); i++) nums[i]+= nums[i -1];sort(nums.begin(), nums.end());int l = nums[0], r = nums[nums.size()-1];int sub = r - l;returnmax(max(abs(l),abs(r)),abs(sub));}};
5659. 删除字符串两端相同字符后的最短长度(双指针)
classSolution{public:intminimumLength(string s){int l =0, r = s.size()-1;while(l < r){if(s[l]!= s[r])break;char ch = s[l];while(l <= r && s[l]== ch) l++;while(l <= r && s[r]== ch) r--;}return r - l +1;}};