137 Single Number II 数组中除了一个数外,其他的数都出现了三次,找出这个只出现一次的数...
生活随笔
收集整理的这篇文章主要介绍了
137 Single Number II 数组中除了一个数外,其他的数都出现了三次,找出这个只出现一次的数...
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
给定一个整型数组,除了一个元素只出现一次外,其余每个元素都出现了三次。求出那个只出现一次的数。
注意:
你的算法应该具有线性的时间复杂度。你能否不使用额外的内存来实现?
详见:https://leetcode.com/problems/single-number-ii/description/
Java实现:
建立一个32位的数组,来统计每一位上1出现的个数,如果某一位上为1的话,那么如果该整数出现了三次,对3去余为0,把每个数的对应位都加起来对3取余,最终剩下来的那个数就是单独的数字。
参考:https://www.cnblogs.com/springfor/p/3870863.html
https://www.cnblogs.com/grandyang/p/4263927.html
class Solution {public int singleNumber(int[] nums) {int res=0;for(int i=0;i<32;++i){int sum=0;for(int j=0;j<nums.length;++j){sum+=(nums[j]>>i)&1;}res+=(sum%3)<<i;}return res;} }
转载于:https://www.cnblogs.com/xidian2014/p/8724660.html
总结
以上是生活随笔为你收集整理的137 Single Number II 数组中除了一个数外,其他的数都出现了三次,找出这个只出现一次的数...的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 【oracle】oracle经典sql,
- 下一篇: 【基础】使用cookies,实现免登陆(