剑指 Offer 03. 数组中重复的数字 哈希表/set class Solution { public int findRepeatNumber(int[] nums) { HashSet<Integer> set = new HashSet<>(); for(int num : nums){ if(set.contains(num)) return num; set.add(num); } return -1; } } 思路:利用set的特性 原地置换 class Solut…
题目: 数组中唯一只出现一次的数字.在一个数组中除一个数字只出现一次之外,其他数字都出现了三次.请找出那个只出现一次的数字. 题解: 如果一个数字出现三次,那么它的二进制表示的每一位(0或者1)也出现三次.如果把所有出现三次的数字的二进制表示的每一位都分别加起来,那么每一位的和都能被3整除.我们把数组中所有数字的二进制表示的每一位都加起来.如果某一位的和能被3整除,那么那个只出现一次的数字二进制表示中对应的那一位是0:否则就是1. class Solution { public: int fin…