//给你一个整数数组 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 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) }