66 lines
1.5 KiB
Java
66 lines
1.5 KiB
Java
|
//给你一个整数数组 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 中,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次
|
|||
|
//
|
|||
|
//
|
|||
|
//
|
|||
|
//
|
|||
|
// 进阶:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
|
|||
|
// Related Topics 位运算
|
|||
|
// 👍 565 👎 0
|
|||
|
|
|||
|
package leetcode.editor.cn;
|
|||
|
|
|||
|
import lombok.val;
|
|||
|
|
|||
|
import java.util.HashMap;
|
|||
|
import java.util.Map;
|
|||
|
|
|||
|
//137:只出现一次的数字 II
|
|||
|
public class SingleNumberIi{
|
|||
|
public static void main(String[] args) {
|
|||
|
//测试代码
|
|||
|
Solution solution = new SingleNumberIi().new Solution();
|
|||
|
}
|
|||
|
//力扣代码
|
|||
|
//leetcode submit region begin(Prohibit modification and deletion)
|
|||
|
class Solution {
|
|||
|
public int singleNumber(int[] nums) {
|
|||
|
Map<Integer,Integer> map = new HashMap<>();
|
|||
|
for (int num :nums){
|
|||
|
map.put(num,map.getOrDefault(num,0)+1);
|
|||
|
}
|
|||
|
for (int num:map.keySet()){
|
|||
|
if(map.get(num)==1){
|
|||
|
return num;
|
|||
|
}
|
|||
|
}
|
|||
|
return 0;
|
|||
|
}
|
|||
|
}
|
|||
|
//leetcode submit region end(Prohibit modification and deletion)
|
|||
|
|
|||
|
}
|