名侦探李先生第一话:谁是真正的凶手(只出现一次的数字相关题解(力扣)+位操作符回忆)

news2024/10/7 14:26:29

引子:我们在之前的案子中破解过基础的单身狗问题,那面对更有挑战的案子,且看李先生如何破局,那下凶手!

复习:

1,位操作符:

正整数原,反,补码都相同

首位是符号位

原码也可以用补码+1表示

计算机中用的是补码

左移<<:左边抛弃,右边补0;

右移>>:逻辑右移和算数右移

按位与&:有0就为0,全1才为1;

按位或|:只要友谊就位1,全为0才为0;

按位异或^:相同为0,不相同为1;

按位取反~:1为0,0为1;

逗号表达式:从左向右依次执行,整个表达式是最后一个表达式的结果!

2,找出唯一的数字(利用异或的作用)

        int value=0;

        for(auto e:nums)

        {value^=e;}

3,应用

 一,不加临时变量进行交换

     int a=0;  int b=12;

     a=a^b;   b=a^b;   a=a^b;

二,求一个整数存储在内存中二进制一的个数

    int n=15;  int conunt=0;

    while(n)   n=n&(n-1);   count++;

三,按位与

    a&1==1;说明a的二进制最低位是1;

   a&1==0;说明a的二进制最低位是0;

四,判断是否为偶数

   if(n=n&(n-1)==0)

    {cout<<"yes"<<endl;}

场景复现:(力扣)

一:

给你一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。你必须设计并实现线性时间复杂度的算法且仅使用常量额外空间来解决此问题

二:

给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题

题解:

对于场景一:

      思路:     我们先用异或筛选出那二个只出现过一次的异或值,记为x,  然后用分组思想,我们可以使用位运算 x & -x取出 x 的二进制表示中最低位那个 1 ,注意在(C语言中,-x实现是用取反+1实现),那我们就可以知道在这个位置,我们要找的这二个数的二进值不同,一个是0,一个是1,所以我们就可以用这个位置的一进行分组,可以分成二组!在进行分别全员异或找到这二个值,那就解出来了!

 代码:

        

class Solution {

public:

    vector<int> singleNumber(vector<int>& nums) {

        unsigned int value=0;

        for(auto e:nums)

        {

            value^=e;

        }

        int peat=value&(-value);

        int h1=0,h2=0;

        for(auto e:nums)

        {

            if(e&peat)

            {

                h1^=e;

            }

            else{

                h2^=e;

            }

        }

        return{h1,h2};//采用了匿名构造函数

    }

};

结果:

对于场景二:

   思路:所求的数字第 i 个二进制位就是数组中所有元素的第 i 个二进制位之和除以 3的余数

            自己琢磨琢磨!

class Solution {

public:

    int singleNumber(vector<int>& nums) {

         int value=0;

         for(int i=0;i<32;i++)

         {

            int sum=0;

            for(auto e:nums)

            {

                sum+=((e>>i)&1);

            }

            if(sum%3)

            {

                value|=(1<<i);

            }

         }

         return value;

    }

};

就到今天啦,期待下次相遇!我们下次再见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1859083.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

长城与华为签署《HUAWEI HiCar 集成开发合作协议》,共创开发生态

近日&#xff0c;在2024年华为开发者大会上&#xff0c;长城汽车与华为签署《HUAWEI HiCar 集成开发合作协议》&#xff08;下称《协议》&#xff09;。这不仅标志着双方相关团队在技术方面的深度合作&#xff0c;更体现了两家公司共同提升未来智能出行体验的共同愿景。 而凭借…

SAPUI5基础知识8 - 模块(Module)的使用

1. 背景 在SAPUI5中&#xff0c;几乎所有东西都是一个模块&#xff08;例如&#xff1a;控件&#xff0c;控制器&#xff0c;组件等等&#xff09;&#xff0c;通过依赖管理&#xff0c;模块间可以相互调用。这样做的好处是&#xff0c;可以仅在需要时才去加载必需的模块&…

基于Openmv的追小球的云台

介绍 在这篇文章&#xff0c;我会先介绍需要用到且需要注意的函数&#xff0c;之后再给出整体代码 在追小球的云台中&#xff0c;比较重要的部分就是云台&#xff08;实质上就是舵机&#xff09;的控制以及对识别的色块位置进行处理得到相应信息后控制云台进行运动 1、舵机模…

基于 RGB的热成像无人机树冠数据集(目标检测)

亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 摘要&a…

Hightec编译器系列之高级调试技巧精华总结

Hightec编译器系列之高级调试技巧精华总结 小T为了便于大家理解&#xff0c;本文的思维导图大纲如下&#xff1a; 之前可能很多小伙伴没有使用过Hightec编译器&#xff0c;大家可以参考小T之前的文章《Hightec编译器系列之白嫖就是爽》可以下载一年试用版本。 小T使用过适配英…

vue中图谱关系插件relation-graph

vue中图谱关系插件relation-graph 一、效果图二、安装下载&#xff08;vue2.0版本的&#xff09;三、直接上代码 一、效果图 二、安装下载&#xff08;vue2.0版本的&#xff09; npm install --save relation-graph var foo bar;三、直接上代码 <template><div cla…

Notepad++插件 Hex-Edit

Nptepad有个Hex文件查看器&#xff0c;苦于每次打开文件需要手动开插件显示Hex&#xff0c;配置一下插件便可实现打开即调用 关联多个二进制文件&#xff0c;一打开就使用插件的方法&#xff0c;原来是使用空格分割&#xff01;&#xff01;&#xff01;

MySQL中的Redo-log是什么?有什么作用?

用来实现数据的恢复&#xff0c;数据被更新到缓冲区但没刷磁盘&#xff0c;然后MySQL宕机了&#xff0c;MySQL会通过日志恢复数据。 1.为什么需要Redo-log日志&#xff1f; MySQL绝大部分引擎都是基于磁盘存储数据的&#xff0c;每次读写数据都走磁盘&#xff0c;效率十分低下…

jar包转exe封装软件并一键安装使用

目录 封装文档说明如有跨域问题在ems服务增加配置服务启动自动打开浏览器使用工具 Launch4j 把jar包打成exe执行文件现在还不能给用户用&#xff0c;因为缺少jre&#xff0c;后面整合资源会把jre一起打包使用inno setup合并资源&#xff0c;mysql之类的服务&#xff0c;最终打包…

鸿蒙 HarmonyOS NEXT星河版APP应用开发-阶段二

一、鸿蒙应用界面开发 弹性布局-Flex 语法 /* 弹性容器组件 Flex() 位置&#xff1a; Flex默认主轴水平往右&#xff0c;交叉轴垂直向下&#xff08;类似Row&#xff09; 语法&#xff1a; Flex(参数对象){子组件1,子组件2,子组件3 } 属性方法&#xff1a; direction&#xf…

2-15 基于matlab的蚁群,模拟退火,遗传,神经网络,禁忌搜索等智能优化算法对TSP问题

基于matlab的蚁群&#xff0c;模拟退火&#xff0c;遗传&#xff0c;神经网络&#xff0c;禁忌搜索等智能优化算法对TSP问题。五种优化算法对多个城市路径进行规划&#xff0c;通过优化速度、距离可比较五种方法的优劣。程序已调通&#xff0c;可直接运行。 2-15 蚁群优化算法 …

【UEFI实战】HttpBoot

环境配置 首先下载tftpd工具&#xff0c;可以在phjounin / tftpd64 / Downloads — Bitbucket下载到&#xff0c;建议不要安装到C盘&#xff0c;因为可能无法修改其配置。配置tftpd工具的DHCP服务&#xff1a; 注意这里的IP地址需要跟实际网卡IP匹配。 下载Apache&#xff0c…

短视频矩阵系统搭建部署,AI剪辑短视频,矩阵发布,一键管理矩阵账号

目录 前言&#xff1a; 一、短视频矩阵系统功能是怎么样的&#xff1f; 二、怎么制作这样一款系统&#xff1f; 总结&#xff1a; 前言&#xff1a; AI短视频矩阵系统&#xff0c;利用AI编辑短视频的功能&#xff0c;将素材上传到系统里面&#xff0c;AI可以自动剪辑成新的短…

【计算机视觉】人脸算法之图像处理基础知识【七】

直方图均衡化 直方图均衡化是一种常用的图像处理技术&#xff0c;用于改善图像的对比度&#xff0c;特别是在图像的细节被埋没在暗部或亮部区域时。通过重新分配图像的像素强度值&#xff0c;使得图像的整体对比度增强&#xff0c;从而让更多的细节变得可见。 import cv2 imp…

关于NACHI机器人语言程序的反编译

所谓反编译&#xff0c;是指将执行形式的程序转换为机器人语言程序&#xff08;ASCII 文件&#xff09;。作业程序&#xff08;执行形式&#xff09;→机器人语言程序&#xff08;源程序&#xff09;。 机器人语言的源程序为纯文本形式&#xff0c;可使用个人电脑的文本编辑器…

针对AIGC检测的鲁棒性测试——常见攻击手段汇总

前言&#xff1a;这篇文章来总结一下针对AIGC检测的常见攻击手段&#xff0c;选取的研究工作均出自近5年AIGC检测相关文章。&#xff08;论文被拒了需要补实验&#xff0c;先来看看别人怎么做的……&#xff09; 2019 WIFS Detecting and Simulating Artifacts in GAN Fake Ima…

Charles抓包工具系列文章(一)-- Compose 拼接http请求

一、背景 众所周知&#xff0c;Charles是一款抓包工具&#xff0c;当然是http协议&#xff0c;不支持tcp。&#xff08;如果你想要抓tcp包&#xff0c;请转而使用wireshark&#xff0c;在讲述websocket的相关技术有梳理过wireshark抓包&#xff09; 话说回来&#xff0c;char…

企业文件传输系统只能传输?分享功能同样重要!(上)

在当今的商业世界里&#xff0c;企业间的协作和信息交流已经变得极其重要&#xff0c;特别是在处理那些庞大的文件时。想象一下&#xff0c;设计图、高清视频、大数据分析&#xff0c;还有软件开发包&#xff0c;这些文件的大小往往达到GB甚至TB级别&#xff0c;它们是企业日常…

守护生产车间安全:可燃气体报警器预警与检测的重要性

近日&#xff0c;东莞一材料厂发生的火灾事故再次敲响了工业安全生产的警钟。 这起事故不仅给工厂带来了巨大的经济损失&#xff0c;也暴露了一些企业在安全管理方面的疏漏。其中&#xff0c;可燃气体报警器的应用与预警功能在火灾防范中扮演了至关重要的角色。 接下来&#…

AlgorithmStar 度量 计算组件

AlgorithmStar 度量 计算组件 AlgorithmStar 本文将会基于 AlgorithmStar 1.40 以及以上的版本来演示&#xff0c;度量 计算 组件 的使用&#xff01; 目录 文章目录 AlgorithmStar 度量 计算组件目录获取到依赖库度量计算组件 计算实例距离计算代表 - 欧几里德距离计算组件…