数组中只出现一次的数字(Java实现)
来源:互联网 发布:pyqt5 tabwidget数据 编辑:程序博客网 时间:2024/05/19 20:42
本题为剑指offer面试题40
牛客网测试地址:https://www.nowcoder.com/questionTerminal/e02fdb54d7524710a7d664d082bb7811
- 时间限制:1秒空间限制:32768K
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
package go.jacob.day514;/* * 本题为:剑指offer面试题40 * * num1,num2分别为长度为1的数组。传出参数 * 将num1[0],num2[0]设置为返回结果 */public class Demo1 {public void FindNumsAppearOnce(int[] array, int num1[], int num2[]) {// 鲁棒性if (array == null || array.length < 2)return;int resultExclusiveOR = 0;// 对数组所有数进行异或for (int i = 0; i < array.length; i++)resultExclusiveOR ^= array[i];int indexOf1 = FindFirstBitIs1(resultExclusiveOR);for (int i = 0; i < array.length; i++) {if (isBit1(array[i], indexOf1))num1[0] ^= array[i];elsenum2[0] ^= array[i];}}/* * 在num的二进制表示中找到第一个位1的位的位置 */private int FindFirstBitIs1(int num) {int indexBit = 0;// int占4字节,一共32位while ((num & 1) == 0 && indexBit < 8 * 4) {num = num >> 1;indexBit++;}return indexBit;}// 判断num的indexOf1位上是否为1private boolean isBit1(int num, int indexOf1) {if (((num >> indexOf1) & 1) == 1)return true;return false;}}
0 0
- 数组中只出现一次的数字(Java实现)
- 数组中只出现一次的数字Java实现
- 数组中只出现一次的数字(java版)
- java 找出数组中只出现一次的数字
- java面试题---数组中只出现一次的数字
- 数组中只出现一次的数字 JAVA
- 数组中只出现一次的数字(数组)
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- NOIP 2006 提高组 复赛 digital 2k 进制数
- numpy的linalg模块
- 【Shell】-- 入门笔记(1) : 变量、字符串、数组、参数及基本运算符
- 继承
- Ubuntu server 安装CUDA 8.0
- 数组中只出现一次的数字(Java实现)
- CentOS下图形界面服务开启关闭以及不同运行级别的转换
- ssh框架关于ERROR Dispatcher:38
- 连续函数微分和离散函数的差分初解
- Python-第三方库requests详解
- sql中exists和not exists用法
- 汉澳sinox是wannacry勒索软件病毒终结者
- leetcode-34. Search for a Range
- 170514 逆向-IDA