《程序员代码面试指南》第七章 位运算 在其他数都出现k 次的数组中找到只出现一次的数

2023-05-13,,

题目

在其他数都出现k 次的数组中找到只出现一次的数

java 代码

package com.lizhouwei.chapter7;

/**
* @Description: 在其他数都出现k 次的数组中找到只出现一次的数
* @Author: lizhouwei
* @CreateDate: 2018/4/28 21:20
* @Modify by:
* @ModifyDate:
*/
public class Chapter7_6 { public int getOnceNum(int[] arr, int k) {
int[] eo = new int[32];
for (int i = 0; i < arr.length; i++) {
int[] kSys = getKSysNum(arr[i], k);
for (int j = 0; j < eo.length; j++) {
eo[j] = (eo[j] + kSys[j]) % k;
}
}
return getFromKSysNum(eo, k); } public int[] getKSysNum(int value, int k) {
int[] res = new int[32];
int index = 0;
while (value != 0) {
res[index++] = value % k;
value = value / k;
}
return res;
} public int getFromKSysNum(int[] eo, int k) {
int res = 0;
for (int i =eo.length-1; i>-1; i--) {
res = res * k + eo[i];
}
return res;
} //测试
public static void main(String[] args) {
Chapter7_6 chapter = new Chapter7_6();
int[] arr = {1, 1, 2, 3, 3, 4, 4, 5, 5};
int reslt = chapter.getOnceNum(arr,2);
System.out.print("{1,1,2,3,3,4,4,5,5}中");
System.out.println("只出现一次的数为:" + reslt);
}
}

结果

《程序员代码面试指南》第七章运算 在其他数都出现k 次的数组中找到只出现一次的数的相关教程结束。

《《程序员代码面试指南》第七章 位运算 在其他数都出现k 次的数组中找到只出现一次的数.doc》

下载本文的Word格式文档,以方便收藏与打印。