LC只出现一次的数字
2022/1/7 23:36:13
本文主要是介绍LC只出现一次的数字,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
我是纯暴力的,分两种情况,一个是aab,一个是abb;最后卡一下数组的末尾三个数的值。代码:
class Solution { public int singleNumber(int[] nums) { Arrays.sort(nums); int l = nums.length; int t = 0; int count = 0X7fffffff; int i = 1; while (i < l-1) { if (nums[t] != nums[i]){ if (nums[i] == nums[i+1]) count = nums[t]; break; } if (nums[t] == nums[i]) { t = i + 1; i = i + 2; } } if (count==0X7fffffff){ count = nums[l-1]; } return count; } }
也可以用HashSet的方法:不用排序了,直接往里加,重复会返回false,然后停止添加并删除掉原先加过的值, 最后剩下的那个值就是要求的结果。时间比暴力的要长。
class Solution { public int singleNumber(int[] nums) { HashSet<Integer> s = new HashSet<Integer> (); for (int i = 0; i < nums.length; i++){ if (!s.add(nums[i])) { s.remove(nums[i]); } } return (int)s.toArray()[0]; } }
评论里有大佬用到了位运算,是真的强!这里摘抄一下:
public int singleNumber(int nums[]) { int result = 0; for (int i = 0; i < nums.length; i++) result ^= nums[i]; return result; } 作者:数据结构和算法 链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x21ib6/?discussion=LIRNfM 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
这篇关于LC只出现一次的数字的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-13Slicm 框架怎么进行用户认证?-icode9专业技术文章分享
- 2024-11-13在查询时将 map_coord 列的值转换为字符串有哪些方法?-icode9专业技术文章分享
- 2024-11-13如何将微信地区改成自定义文案?-icode9专业技术文章分享
- 2024-11-13DNS 缓存存在问题有哪些症状和解决方法?-icode9专业技术文章分享
- 2024-11-13HTTP 状态码(405)-Method Not Allowed是什么意思?-icode9专业技术文章分享
- 2024-11-13HTTP 状态码(500)-Internal Server Error是什么意思?-icode9专业技术文章分享
- 2024-11-13在 Element UI 中无法修改 $confirm 的取消按钮文字是什么原因?-icode9专业技术文章分享
- 2024-11-13unity XR是什么?-icode9专业技术文章分享
- 2024-11-13伴随矩阵是什么?-icode9专业技术文章分享
- 2024-11-13怎么使用grep -E 来查找匹配最后 2 条数据?-icode9专业技术文章分享