首页 > 其他分享 >只出现一次的数字 II

只出现一次的数字 II

时间:2024-08-10 21:53:30浏览次数:13  
标签:99 一次 数字 示例 int nums II 元素 出现

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

你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。

示例 1:

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

示例 2:

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

利用位运算符。

class Solution {
public:
    int singleNumber(vector<int>& nums) 
    {
        int bitArrray[32]={0};
        for(auto e:nums)
        {
            for(size_t i=0;i<32;++i)
            {
                if(e&(1<<i))
                {
                    bitArrray[i]++;//统计所有数32位中1的位置
                }
            }
        }

        int val=0;
        for(size_t i=0;i<32;++i)
        {
            if(bitArrray[i]%3==1)//找到只出现一次的数32位中1的位置
            {
                val|=(1<<i);//转换这个数
            }
        }
        return val;

    }
};

标签:99,一次,数字,示例,int,nums,II,元素,出现
From: https://blog.csdn.net/2403_85903590/article/details/141096713

相关文章

  • 从零开始制作一个简易数字示波器,超详细看完必懂 举例基于stm32f103标准库
    为了实现使用STM32f103制作一个简易数值示波器,大体流程如下:1-模拟信号(输入)2-ADC(模数转换)(适当采样率和分辨率配置)3-DMA(直接存储器访问)(DMA搬运,减少CPU负担)4-内存缓冲区(数据转入缓冲区)5-FFT处理(频域数据)(FFT处理(可选,用于频域显示))6-显示处理(像素转换)(数据映射为......
  • C/C++数字与字符串互相转换
    前言:在C/C++程序中,会需要把数字与字符串做出互相转换的操作,用于实现程序想要的效果。下面将介绍多种方法实现数字与字符串互相转换。字符串转为数字一、利用ASCII我们知道每个字符都有一个ASCII码,利用这一点可以将字符-'0'转为数字。在字母大小写转换时也可以利用这个性质......
  • http.sys 是 IIS 的底层组件,负责高效、安全地处理 HTTP 请求,而 IIS 则提供了更高层次
    IIS(InternetInformationServices)和http.sys是MicrosoftWindows操作系统中的两个相关组件,它们一起工作来处理和管理HTTP请求。以下是它们的关系和功能:IIS:Web服务器:IIS是Microsoft的Web服务器软件,提供了用于托管和管理Web应用程序的功能,包括网站、应用程序......
  • 计算机病毒:数字世界的隐形威胁
    在数字化时代,计算机病毒已成为我们不可忽视的隐形威胁。它们如同潜伏在数字世界中的幽灵,悄无声息地侵入我们的计算机系统,窃取信息、破坏数据,甚至瘫痪整个网络。了解计算机病毒的本质、传播方式及防御策略,对于保护我们的数字资产至关重要。计算机病毒的定义计算机病毒是一种......
  • JAVA毕设项目II精准扶贫管理系统
    目录一、前言二、技术介绍三、系统实现四、论文参考五、核心代码六、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。源码联系请查看文末一、前言"在全面打赢脱贫攻坚战的背景下,精准扶贫管理系统......
  • CF1984G Magic Trick II 题解
    前记第一篇黑题题解。难调。好写。码量不大。Description给定一个大小为nnn的排列pp......
  • LeetCode | 541 Reverse String II
    分析以2k作为游标步长,反转游标前半部分的字符串,后半部分保留;尾部部分余留长度,如果在[k,2k)直接处理情况跟前述一样,如果不是则直接返回。在这道题里面,还是回到数组部分提到的循环不变量法则,在2k长度这个游标移动过程中,处理完全一致:2k步长移动,只处理[2i,2i+k]部分,即便是尾部也是如......
  • 三个数字的加减乘除模运算
    Console.WriteLine("请输入第一个数字:");doubled1=double.Parse(Console.ReadLine());Console.WriteLine("请输入第二个数字:");doubled2=double.Parse(Console.ReadLine());Console.WriteLine(&......
  • 给定一个10GB大小的文件,存储的都是数字,如何对文件中的数字进行排序,并输出新文件?限制内
    背景这是一道面试题,可考察的点也不少。总结几个关键词去解决这个问题,1,文件拆分;2、排序算法;3、缓冲buffer性能优化。啊,乍一看,这绝对不是一个初级程序员能够答出来,且能答得很好的问题,这个题目可以考察到我们的算法能力,性能优化经验。可万万不能马虎对待!开始讲思路。第一步,文件拆......
  • 万字长文讲透数字化转型
    温馨提醒:1.6w字详细拆解,内容篇幅较长,建议先收藏~数字化浪潮正在席卷全球,践行数字化转型和提升企业的运营水平与竞争力,已经成为各国企业角力全球市场的重要议题。为此,很多国家政府都推出了鼓励和推动本国企业数字化转型的相关政策。在国内,旧的增长方式难以为继,企业面临迫切的......