数组中只出现一次的数字
把这两个数分开到两个数组中即可
// num1, num2 分别为长度为 1 的数组。传出参数 // 将 num1[0], num2[0] 设置为返回结果 public class Solution { public void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) { int sum = 0; for (int i = 0; i < array.length; i ++){ sum ^= array[i]; } int index = 0; for (index = 0; index < 32; index ++){ if ( (sum&(1 << index)) != 0){ break; } } for (int i = 0; i < array.length; i ++){ if ( (array[i] & (1 << index)) != 0){ num1[0] ^= array[i]; } else { num2[0] ^= array[i]; } } } }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论