剑指offer 只出现一次的数字Java
力扣题目链接
不知道别的方法怎么样,只能想出HashMap
class Solution {
public int singleNumber(int[] nums) {
Map<Integer,Integer> map = new HashMap<Integer,Integer>();
for(int num :nums){
map.put(num,map.getOrDefault(num,0)+1);
}
for(Map.Entry<Integer,Integer> entry: map.entrySet()){
if(entry.getValue().equals(1)){
return entry.getKey();
}
}
return -1;
}
}
力扣大佬的代码1ms
class Solution {
//将整数的各个数位上的加起来,然后对3取余,若结果为0,则待求数字在该位上是0;
//若结果为1,则待求数字在该位上是1.
public int singleNumber(int[] nums) {
//java的int整型为32位
int[] arr=new int[32];
for(int num:nums){
for(int i=0;i<32;i++){
arr[i]+=(num>>(31-i))&1;
}
}
int res=0;
for(int i=0;i<32;i++){
res=(res<<1)+arr[i]%3;
}
return res;
}
}
本文来自博客园,作者:蹇爱黄,转载请注明原文链接:https://www.cnblogs.com/jianjiana/p/15861794.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?