1. 程式人生 > 實用技巧 >win10工作列顯示“中/英“語言標識

win10工作列顯示“中/英“語言標識

技術標籤:java刷題異或門

陣列中數字出現的次數
利用異或操作。陣列元素相互異或後,剩餘的一定是兩個出現次數為1的元素。此時判斷這兩個元素的第k位不相同,為1的放在一個集合中,為0的放在另一集合中。兩個集合異或後剩餘的分別是出現次數為1的數字。

class Solution {
    public int[] singleNumbers(int[] nums) {
        int sum = 0;
        for (int num : nums) {
            sum ^= num;
        }
        int k = 0;
        while
((sum >> k & 1) != 1) k++; int first = 0; for (int num : nums) { if ((num >> k & 1) == 1) first ^= num; } return new int[] {first, sum ^ first}; } }