给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 示例 1:
输入:nums = [2,2,3,2] 输出:3 示例 2: 输入:nums = [0,1,0,1,0,1,99] 输出:99 提示:1 <= nums.length <= 3 * 104
-231 <= nums[i] <= 231 - 1 nums 中,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次进阶:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/single-number-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public int singleNumber(int[] nums) {
Map<Integer, Integer> hashmap = new HashMap<Integer, Integer>();
for (int num : nums) {
hashmap.put(num, hashmap.getOrDefault(num, 0) + 1);
}
int ans = 0;
for (Map.Entry<Integer, Integer> entry : hashmap.entrySet()) {
int num = entry.getKey();
int count = entry.getValue();
if (count == 1) {
ans = num;
break;
}
}
return ans;
}
}
今天写晚了,上午上课,下午晚上坐火车回家来着
查找数字出现次数,最简单直接的方法就是建一个hashmap然后查value和key了;
不具体讲解,官方题解有诡异的数电思路
https://leetcode-cn.com/problems/single-number-ii/solution/zhi-chu-xian-yi-ci-de-shu-zi-ii-by-leetc-23t6/
明天再看,之后玩明白git后可能会转到GitHub,就不在csdn更新了