数组中只出现一次的数字题解
程序员文章站
2022-06-23 11:49:07
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字
解题思路:使用位运算的方式进行处理。
java
//num1,num2分别为长度为1...
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字
解题思路:使用位运算的方式进行处理。
java
//num1,num2分别为长度为1的数组。传出参数 //将num1[0],num2[0]设置为返回结果 public class Solution { public void FindNumsAppearOnce(int[] array,int num1[] , int num2[]) { if (array == null || array.length <= 4) { return; } int val = array[0]; for (int i = 1; i < array.length; i++) { val = val ^ array[i]; } int index = getFirst(val); for (int i = 0; i < array.length; i++) { if (isIndex(array[i], index)) { num1[0] ^= array[i]; } else { num2[0] ^= array[i]; } } } private int getFirst(int val) { int count = 0; while ((val & 1) == 0) { val = val >> 1; count++; } return count; } private boolean isIndex(int val, int index) { if (val == 0) { return false; } val = val >> index; return (val & 1) == 1; } }
推荐阅读
-
PHP查找数组中只出现一次的数字实现方法【查找特定元素】
-
在字符串中找出第一个只出现一次的字符。经典C语言例题
-
leadcode的Hot100系列--136. 只出现一次的数字
-
python(leetcode)-136只出现一次的数字
-
LeetCode 面试题56 - I. 数组中数字出现的次数
-
在一个非降序排列的数组中,找出数字target出现的次数问题解答
-
剑指offer 56 数组中数字出现的次数 lintcode 82. 落单的数、83. 落单的数 II、84. 落单的数 III
-
位运算 -- 只出现一次的的数字
-
【知识迁移能力】数组中只出现一次的数字
-
【不熟练】知识迁移能力-数组中只出现一次的数字