auto commit
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
|
||||
## 题目链接
|
||||
|
||||
[牛客网](https://www.nowcoder.com/practice/e02fdb54d7524710a7d664d082bb7811?tpId=13&tqId=11193&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking&from=cyc_github)
|
||||
[牛客网](https://www.nowcoder.com/practice/389fc1c3d3be4479a154f63f495abff8?tpId=13&tqId=11193&tab=answerKey&from=cyc_github)
|
||||
|
||||
## 题目描述
|
||||
|
||||
@ -19,16 +19,27 @@
|
||||
下面的解法中,num1 和 num2 数组的第一个元素是用来保持返回值的... 实际开发中不推荐这种返回值的方式。
|
||||
|
||||
```java
|
||||
public void FindNumsAppearOnce(int[] nums, int num1[], int num2[]) {
|
||||
public int[] FindNumsAppearOnce (int[] nums) {
|
||||
int[] res = new int[2];
|
||||
int diff = 0;
|
||||
for (int num : nums)
|
||||
diff ^= num;
|
||||
diff &= -diff;
|
||||
for (int num : nums) {
|
||||
if ((num & diff) == 0)
|
||||
num1[0] ^= num;
|
||||
res[0] ^= num;
|
||||
else
|
||||
num2[0] ^= num;
|
||||
res[1] ^= num;
|
||||
}
|
||||
if (res[0] > res[1]) {
|
||||
swap(res);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
private void swap(int[] nums) {
|
||||
int t = nums[0];
|
||||
nums[0] = nums[1];
|
||||
nums[1] = t;
|
||||
}
|
||||
```
|
||||
|
Reference in New Issue
Block a user