异或消除法和辅助数组法解决算法问题
异或消除法和辅助数组法解决算法问题,找出落单的数,找出数组中成对的数,二进制1的个数,将整数的奇偶位互换
婷婷T
Bug层出不穷,人生永无止境
展开
-
二进制中1的个数
一、请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。 例:9的二进制表示为100,有2位是1。 import java.util.Scanner; public class 题3_二进制中1的个数 { static int N; public static void main(String[] args) { Scanner sc = new Scanner(System...原创 2020-02-04 16:37:52 · 185 阅读 · 0 评论 -
找出落单的那个数
一、请问在一个数组里除了某一个数字之外,其他的数字都出现了两次。如何找出落单的那个数? 答:用辅助数组法,元素转下标,下标转元素。辅助数组对原数组元素进行计数,数组元素为1,则下标为落单的那个数。 用异或消除法。因为0^A=A,A^A=0。 import java.util.Arrays; public class 题2_找出落单的那个数 { static int arr[]= {2,8...原创 2020-02-04 16:11:52 · 357 阅读 · 0 评论 -
如何寻找数组中唯一成对的数?
一、位运算 在处理整型数值时,可以直接对组成整型数值的各个位进行操作。 这意味着可以使用屏蔽技术获得整数中的个位。 二、异或的功能,消除重复,不进位加法。 异或,A^A=0;B^0=B; 三、对拍:写两种解法,对比最后结果。 四、本题采用了辅助数组法和异或消除法两种解法 import java.util.Arrays; import java.util.Random; public cl...原创 2020-02-04 15:57:39 · 276 阅读 · 0 评论