微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 BITWISE 运算符删除数组中的重复元素?

如何解决如何使用 BITWISE 运算符删除数组中的重复元素?

我只是在想,也许我们可以使用按位运算符删除重复的数字。这可能吗?例如,如果我们有相同的数字,则使用 XOR,我们可以将其设为零

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. 如果是相同的数字,则 XOR 使其为零;这不是删除数字,只是使它0(如果不允许为零可能有用,但仍然没有删除)
    示例:输入 1,1 将导致数组中有 [1,...]
  2. 如果不是相同的数字,则 XOR 会生成一个(总)不同的数字
    示例:输入 12 将导致数组中有 [1,3,...]
  3. 该算法仅将输入的值与数组的最后一个条目进行比较,而不对任何先前的条目进行测试
    示例:输入 121 将导致数组中有 [1,2,1,...]

答案:甚至有可能,但我认为实现和理解都不简单

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。