1748. 唯一元素的和
给你一个整数数组 nums 。数组中唯一元素是那些只出现 恰好一次 的元素。
请你返回 nums 中唯一元素的 和 。
示例 1:
输入:nums = [1,2,3,2]
输出:4
解释:唯一元素为 [1,3] ,和为 4 。
示例 2:
输入:nums = [1,1,1,1,1]
输出:0
解释:没有唯一元素,和为 0 。
示例 3 :
输入:nums = [1,2,3,4,5]
输出:15
解释:唯一元素为 [1,2,3,4,5] ,和为 15 。
void quick(int *a,int low,int high){
if(low<high){
int l=low,h=high,p=a[low];
while(low<high){
while(low<high&&a[high]>=p){
high--;
}
a[low]=a[high];
while(low<high&&a[low]<=p){
low++;
}
a[high]=a[low];
}
a[low]=p;
quick(a,l,low-1);
quick(a,low+1,h);
}
}
int sumOfUnique(int* nums, int numsSize){
quick(nums,0,numsSize-1);
int i;
int sum=0;
if(numsSize==1){
return nums[0];
}
for(i=0;i<numsSize;i++){
printf("%d ",nums[i]);
if(i==0){
if(nums[i]!=nums[1]){
sum=sum+nums[i];
}
continue;
}
if(i==numsSize-1){
if(nums[i]!=nums[i-1]){
sum=sum+nums[i];
}
continue;
}
if(nums[i]!=nums[i-1]&&nums[i]!=nums[i+1]){
sum=sum+nums[i];
}
}
return sum;
}