剑指offer 只出现一次的数字Java
2022/2/3 20:15:15
本文主要是介绍剑指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; } }
这篇关于剑指offer 只出现一次的数字Java的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-20接口模块封装入门教程
- 2024-09-20请求动作封装入门教程
- 2024-09-20登录鉴权学习:新手入门教程
- 2024-09-20后台管理开发学习:新手入门指南
- 2024-09-20后台管理系统开发学习:从入门到实践
- 2024-09-20后台开发学习:从入门到初级实战指南
- 2024-09-20后台综合解决方案学习:从入门到实践
- 2024-09-20接口模块封装学习入门指南
- 2024-09-20请求动作封装学习:新手入门教程
- 2024-09-20登录鉴权入门:打造安全的用户认证系统