zoukankan      html  css  js  c++  java
  • 剑指 Offer 56

    在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。

    示例 1:

    输入:nums = [3,4,3,3]
    输出:4
    示例 2:

    输入:nums = [9,1,7,9,7,9,7]
    输出:1
     

    限制:

    1 <= nums.length <= 10000
    1 <= nums[i] < 2^31

    class Solution:
        def singleNumber(self, nums: List[int]) -> int:
            n=len(nums)
            if n==1:return nums[0]
            nums.sort()
            for i in range(n-1):
                if i==0:
                    if nums[i+1]!=nums[i]:
                        return nums[i]
                elif i==n-2:
                    if nums[i]!=nums[i+1]:
                        return nums[i+1]
                elif nums[i]!=nums[i-1] and nums[i]!=nums[i+1]:
                    return nums[i]
    class Solution:
        def singleNumber(self, nums: List[int]) -> int:
            return (sum(set(nums))*3-sum(nums))//2
    class Solution {
        public int singleNumber(int[] nums) {
            int[] cnt=new int[32];
            for(int i=0;i<nums.length;i++){
                for(int j=0;j<32;j++){
                    cnt[j]+=(nums[i]>>j&1)==1?1:0;
                }
            }
            int res=0;
            for(int i=31;i>=0;i--){
                res<<=1;
                if(cnt[i]%3==1)res=(res|1);
            }
            return res;
        }
    }
  • 相关阅读:
    box-sizing
    js词法作用域
    焦点轮播图
    绑定事件统一方法
    自动展示收起广告功能
    使用js实现瀑布流
    回到顶部效果
    电商网站的放大镜功能
    CSS清除浮动
    CSS的水平居中和垂直居中方式
  • 原文地址:https://www.cnblogs.com/xxxsans/p/13734822.html
Copyright © 2011-2022 走看看