zoukankan      html  css  js  c++  java
  • LeetCode 137. 只出现一次的数字 II

    题目

    给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。

    示例 1:

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

    输入:nums = [0,1,0,1,0,1,99]
    输出:99
     

    提示:

    1 <= nums.length <= 3 * 104
    -231 <= nums[i] <= 231 - 1
    nums 中,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次
     

    进阶:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/single-number-ii
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    思路

    位运算

     1 class Solution {
     2 public:
     3     int singleNumber(vector<int>& nums) {
     4         int ans=0;
     5         for(int i=0;i<32;i++){
     6             int cnt=0;
     7             for(auto n:nums){
     8                 cnt+=(n>>i)&1;
     9             }
    10             if(cnt%3){
    11                 ans|=(1<<i);
    12             }
    13         }
    14         return ans;
    15     }
    16 };
  • 相关阅读:
    拟阵交
    HEOI2021退役记
    退役划水一
    上下界网络流学习笔记
    扩展卢卡斯学习笔记
    扩展中国剩余定理(EXCRT)学习笔记
    插头DP学习笔记
    如何优雅地生成仙人掌图
    Powerful Number 筛学习笔记
    边分治学习笔记
  • 原文地址:https://www.cnblogs.com/wydxry/p/15638567.html
Copyright © 2011-2022 走看看