package test;
import java.util.ArrayList;
import java.util.List;
public class FindNumsAppearOnceUpdate {
public int getResult(int[] nums){
String stringTemp = new String();
List<Integer> list = new ArrayList<>();
for(int i:nums){
String string = Integer.toBinaryString(i);
char[] chars = string.toCharArray();
int j=string.length()-1;
int count = 0;
while(j >= 0 && count < list.size()){
if(chars[j]=='1'){
int temp = list.get(count)+1;
if(temp%3==0){
list.set(count, 0);
}else{
list.set(count, temp);
}
}
j--;
count++;
}
while(j>=0){
list.add(Integer.valueOf(String.valueOf(chars[j])));
j--;
}
}
for(int i : list){
stringTemp = i+stringTemp;
}
return Integer.valueOf(stringTemp, 2);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] nums = {100,100,100,567,567,567,2345,2345,1024,2345,56789,56789,56789};
FindNumsAppearOnceUpdate findNumsAppearOnceUpdate = new FindNumsAppearOnceUpdate();
int result = findNumsAppearOnceUpdate.getResult(nums);
System.out.println(result);
}
}
剑指Offer 40题扩展 其他数字出现3次 找出只出现一次的那个 Java实现
最新推荐文章于 2020-06-24 17:13:24 发布