java中@Controller和@RestController的區別
阿新 • • 發佈:2022-03-17
劍指 Offer 56 - II. 陣列中數字出現的次數 II
題目
連結
https://leetcode-cn.com/problems/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-ii-lcof/
問題描述
在一個數組 nums 中除一個數字只出現一次之外,其他數字都出現了三次。請找出那個只出現一次的數字。
示例
輸入:nums = [3,4,3,3]
輸出:4
提示
1 <= nums.length <= 10000
1 <= nums[i] < 2^31
思路
首先全部轉為二進位制,加起來。
每一位如果可以被3整除,那就代表這位和目標數無關,用%。
然後得到的新的二進位制數,就是要求的目標數。
複雜度分析
時間複雜度 O(n)
空間複雜度 O(c)
程式碼
Java
public int singleNumber(int[] nums) { int[] k = new int[32]; for (int num : nums) { for (int i = 0; i < 32; i++) { k[i] += num & 1; num >>= 1; } } int res = 0; for (int i = 0; i < 32; i++) { res |= (k[i] % 3) << i; } return res; }