我在想也许我们可以用位运算符去掉重复的数字。这可能吗?
例如,使用异或,如果我们有相同的数字,我们可以使之为零 a[i] = number ^ scanner.nextInt()
```
import java.util.*;
class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int n = 6;
int[] a = new int[n];
System.out.println("Enter array elements:");
a[0] = s.nextInt();
for(int i=1;i<n;i++){
a[i] = a[0] ^ s.nextInt();
}
for(int i=0;i<n;i++)
{
System.out.println(a[i]);
}
}
}
我卡住了。有人能帮我吗?谢谢!
1条答案
按热度按时间pkln4tw61#
如果是同一个数,则xor使其为零;这并不是删除数字,只是让它
0
(如果不允许为零,则可能有用,但仍然没有删除)示例:输入
1
,1
会导致[1, 0, ...]
在数组中如果不是同一个数,则“异或”产生一个不同的数
示例:输入
1
以及2
会导致[1, 3 ,...]
在数组中该算法只将输入的值与数组的最后一个条目进行比较,而不与之前的任何条目进行测试
示例:输入
1
,2
,1
会导致[1, 2, 1, ...]
在数组中答:这甚至是可能的,但我认为这既不简单,也不容易实现,也不容易理解