1748. 唯一元素的和-快速排序,加条件遍历
2023-09-14 09:06:52 时间
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;
}
相关文章
- Java实现 LeetCode 769 最多能完成排序的块(单向遍历)
- Java实现 LeetCode 617 合并二叉树(遍历树)
- Java实现 LeetCode 566 重塑矩阵(遍历矩阵)
- Java实现 LeetCode 429 N叉树的层序遍历
- 【二叉树】LeetCode 102. 二叉树的层序遍历【中等】
- 429. N 叉树的层序遍历
- LeetCode-769. 最多能完成排序的块【贪心,一次遍历,单调栈,排序】
- C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值
- JavaScript数组的常用方法总结:遍历,复制,反转,排序,添加,删除(前端常见面试题必考必问)实例演示
- 【数据结构笔记17】数据结构之图的遍历和最短路径问题(广度优先遍历、深度优先遍历、最小生成树、求解最短路径)
- 2415. 反转二叉树的奇数层-层次遍历
- 2475. 数组中不等三元组的数目-快速排序+遍历求和
- [LeetCode] 538. 把二叉搜索树转换为累加树 ☆(中序遍历变形)
- [LeetCode] 784. 字母大小写全排列 ☆☆☆(回溯、深度优先遍历)
- Java迭代器模式:优雅遍历集合,实现简洁高效的迭代器设计