[LeetCode] 1748. Sum of Unique Elements
2022/2/6 6:12:24
本文主要是介绍[LeetCode] 1748. Sum of Unique Elements,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
You are given an integer array nums
. The unique elements of an array are the elements that appear exactly once in the array.
Return the sum of all the unique elements of nums
.
Example 1:
Input: nums = [1,2,3,2] Output: 4 Explanation: The unique elements are [1,3], and the sum is 4.
Example 2:
Input: nums = [1,1,1,1,1] Output: 0 Explanation: There are no unique elements, and the sum is 0.
Example 3:
Input: nums = [1,2,3,4,5] Output: 15 Explanation: The unique elements are [1,2,3,4,5], and the sum is 15.
Constraints:
1 <= nums.length <= 100
1 <= nums[i] <= 100
唯一元素的和。
给你一个整数数组 nums 。数组中唯一元素是那些只出现 恰好一次 的元素。
请你返回 nums 中唯一元素的 和 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sum-of-unique-elements
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路是哈希表 + 记录状态,扫描一遍即可。注意 input 给的范围是 1 - 100,所以这里我们用一个长度为 101 的 map 数组记录每个元素是否出现过
因为 Java 数组创建后默认值是 0,所以没有出现过我们记为 0
数字如果第一次出现,我们把 map 里这个数字标记为 1 并且将这个数值累加到结果里
如果遇到一个已经是 1 的数字,把 map 里这个数字标记为 2 并将这个数值从结果里减去,这样下次我们再遇到 2 的时候直接跳过不处理即可
时间O(n)
空间O(1) - map 数组长度只有 101
Java实现
1 class Solution { 2 public int sumOfUnique(int[] nums) { 3 int res = 0; 4 int[] map = new int[101]; 5 for (int num : nums) { 6 if (map[num] == 0) { 7 res += num; 8 map[num] = 1; 9 } else if (map[num] == 1) { 10 res -= num; 11 map[num] = 2; 12 } 13 } 14 return res; 15 } 16 }
LeetCode 题目总结
这篇关于[LeetCode] 1748. Sum of Unique Elements的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享