力扣-260. 只出现一次的数字 III

文章目录

    • 力扣题目
    • 代码

力扣题目

给你一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。

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

示例 1:

输入:nums = [1,2,1,3,2,5]
输出:[3,5]
解释:[5, 3] 也是有效的答案。
示例 2:

输入:nums = [-1,0]
输出:[-1,0]
示例 3:

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

代码

思路分析:
1.异或两个相同的数,等于没有异或,经常用于消除出现两次的数字
2.x &-x 可以生成一个保留最右边 bit为1的数字,其他bit都置为0
3.两个只出现1次的数字,那么这个Bit1不是x就是y的,再一次&全部的数字,就可以得到x或者y
此题还是有难度的,我看了好多题解才理解上去。

int* singleNumber(int* nums, int numsSize, int* returnSize) 
{long long OR = 0;/*代表数组元素异或后的值*/int i= 0, result1 = 0, result2 = 0;long long flag = 0;int *arr = (int *)malloc(sizeof(int) * 2);/*对数组进行异或处理*/for(i= 0; i < numsSize; i++){OR ^= nums[i];}/*生成一个保留最右边 bit为1的数字,其他bit都置为0*/flag = OR & (-OR);for(i= 0; i < numsSize; i++){if((flag & nums[i]) != 0)/*说明数组此元素的flag位为1*/{result1 ^= nums[i];/*最终得到与flag位相同的那个数字*/}}result2 = result1 ^ OR;/*得到另一个数字*/arr[0] = result1;arr[1] = result2;*returnSize = 2;return arr;
}

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

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

相关文章

【JAVA WEB】 开发环境配置

目录 Visual studio 安装 插件安装 第一个页面编写 前端开发工具有很多&#xff0c;例如sublime、idea、vscode&#xff08;企业开发前端的时候非常常用的一个开发工具&#xff09;。这里演示vscode的安装配置。 Visual studio 安装 官网下载VS code软件 链接:Visual Stu…

centos中docker操作+安装配置django并使用simpleui美化管理后台

一、安装docker 确保系统是CentOS 7并且内核版本高于3.10,可以通过uname -r命令查看内核版本。 更新系统软件包到最新版本,可以使用命令yum update -y。 安装必要的软件包,包括yum-utils、device-mapper-persistent-data和lvm2。使用命令yum install -y yum-utils devic…

多视图特征学习 Multi-view Feature Learning既可以被看作是一种学习框架,也可以被看作是一种具体的学习算法!

Multi-view Feature Learning 1.多视图特征学习Multi-view Feature Learning的基本介绍总结 1.多视图特征学习Multi-view Feature Learning的基本介绍 多视图特征学习是一种利用多视图数据集来进行联合学习的机器学习方法。多视图数据指的是对同一事物从多种不同的途径或角度进…

AutoSAR(基础入门篇)7.3-使用DEV配置SWCRTE

目录 一、实验概览 1、实验目的 2、实验内容 二、步骤一:配置SWC

如何为Kafka加上账号密码(二)

认证策略SASL/PLAIN 上篇文章中我们讲解了Kafka认证方式和基础概念&#xff0c;并比较了不同方式的使用场景。 我们在《2024年了&#xff0c;如何更好的搭建Kafka集群&#xff1f;》中集群统一使用PLAINTEXT通信。Kafka通常是在内网使用&#xff0c;但也有特殊的使用场景需要…

软件安全测试报告如何编写?权威的安全测试报告如何获取?

软件安全测试报告是一份详尽的文件&#xff0c;它主要通过对软件进行全面、系统的测试&#xff0c;评估软件的安全性&#xff0c;并在测试结束后起草编写的报告。该报告能清晰地展示出软件的各项安全风险以及潜在威胁&#xff0c;为用户提供安全方面的决策依据&#xff0c;并帮…

MySQL篇之索引

一、定义 索引&#xff08;index&#xff09;是帮助MySQL高效获取数据的数据结构(有序)。在数据之外&#xff0c;数据库系统还维护着满足特定查找算法的数据结构&#xff08;B树&#xff09;&#xff0c;这些数据结构以某种方式引用&#xff08;指向&#xff09;数据&#xff0…

【实验1】分布式模式的CentOS 6上安装Hadoop(1个master节点,2个slave节点)

文章目录 一、实验环境:二、实验内容与步骤(过程及数据记录):1. 安装VMWare Workstation 162. VMWare 10安装CentOS 62.1 CentOS系统安装2.2 CentOS系统安装中的关键问题2.3 克隆HadoopSlave3. Windows和Linux系统间的文件传输3.1 安装FileZilla Client3.2 打开并传输文件测…

Nginx管理配置中多种变量学习

Nginx管理配置中多种变量学习 在Nginx中&#xff0c;变量是一种非常有用的功能&#xff0c;它们可以帮助我们更方便地处理和控制请求。Nginx提供了许多内置的变量&#xff0c;我们可以在配置文件中使用这些变量来获取请求的相关信息。本文将详细介绍Nginx中的变量及其使用方法…

快团团大团长加了微信都不回复怎么回事?如果自己做快团团预算需要多少,团队需要几个人

大团长加了微信都不回复怎么回事&#xff1f;很多供货方会困惑这个问题&#xff01;是不是自己的产品有问题&#xff1f;怎么才能让大团长带我的货&#xff1f;第一头部团长真的不缺货源&#xff0c;第二他们每天成千上万的信息&#xff0c;不缺信息。 所以要么从你认识的团长下…

node.js+vue企业人事自动化办公oa系统c288a

采用B/S模式架构系统&#xff0c;开发简单&#xff0c;只需要连接网络即可登录本系统&#xff0c;不需要安装任何客户端。开发工具采用VSCode&#xff0c;前端采用VueElementUI&#xff0c;后端采用Node.js&#xff0c;数据库采用MySQL。 涉及的技术栈 1&#xff09; 前台页面…

第68讲表单验证实现

表单验证实现 Form 组件允许你验证用户的输入是否符合规范&#xff0c;来帮助你找到和纠正错误。 Form 组件提供了表单验证的功能&#xff0c;只需为 rules 属性传入约定的验证规则&#xff0c;并将 form-Item 的 prop 属性设置为需要验证的特殊键值即可。 const rulesref({u…

HiveSQL——不使用union all的情况下进行列转行

参考文章&#xff1a; HiveSql一天一个小技巧&#xff1a;如何不使用union all 进行列转行_不 union all-CSDN博客文章浏览阅读881次&#xff0c;点赞5次&#xff0c;收藏10次。本文给出一种不使用传统UNION ALL方法进行 行转列的方法,其中方法一采用了concat_wsposexplode()方…

《CSS 简易速速上手小册》第10章:未来的 CSS(2024 最新版)

文章目录 10.1 CSS 的新特性和趋势10.1.1 基础知识10.1.2 重点案例&#xff1a;使用 CSS Grid 创建响应式图库10.1.3 拓展案例 1&#xff1a;利用 CSS 变量实现主题切换10.1.4 拓展案例 2&#xff1a;使用 lab() 颜色和 layer 规则优化样式 10.2 CSS Houdini&#xff1a;魔法般…

【大厂AI课学习笔记】【1.6 人工智能基础知识】(1)人工智能、机器学习、深度学习之间的关系

6.1 人工智能、机器学习与深度学习的关系 必须要掌握的内容&#xff1a; 如上图&#xff1a;人工智能>机器学习>深度学习。 机器学习是人工智能的一个分支&#xff0c;该领域的主要研究对象是人工智能&#xff0c;特别是如何在经验学习中改进具体算法的性能。 深度学习…

【leetcode】965. 单值二叉树

题目链接 965. 单值二叉树 bool isUnivalTree(struct TreeNode* root) {// if (root->left ! NULL && root->right ! NULL) {// return root->val root->left->val// && root->val root->right->val// && isUnivalTr…

网站建设详细步骤和流程是什么

我们选择了白嫖雨云的二级域名 浏览器输入https://www.rainyun.com/z22_ 创建账号然后选择一个你喜欢的子域名我建议后缀选择ates.top的 选择自定义地址&#xff0c;类型选择cname 现在要选择记录值了&#xff0c;有a&#xff0c;aa&#xff0c;txt等 根据实际情况填写。就可以…

《CSS 简易速速上手小册》第9章:CSS 最佳实践(2024 最新版)

文章目录 9.1 维护大型项目的 CSS9.1.1 基础知识9.1.2 重点案例&#xff1a;构建一个可复用的 UI 组件库9.1.3 拓展案例 1&#xff1a;优化现有项目的 CSS 结构9.1.4 拓展案例 2&#xff1a;实现主题切换功能 9.2 BEM、OOCSS 和 SMACSS 方法论9.2.1 基础知识9.2.2 重点案例&…

【pip】本地和Anaconda的pip冲突时如何指定安装位置

输入指令&#xff1a; where pip 显示如下&#xff1a; D:\LenovoSoftstore\Anaconda\Scripts\pip.exe C:\python\python3.8\Scripts\pip.exe 可以看到有两个位置的pip&#xff0c;一个Anaconda下的pip&#xff0c;一个是本地的pip。 当我们使用pip安装的时候&#xff0c;系…

day37 闭包、变量提升

目录 闭包变量提升函数提升 闭包 闭包&#xff08;closure&#xff09;是一个函数以及其捆绑的周边环境状态&#xff08;lexical environment&#xff0c;词法环境&#xff09;的引用的组合。换而言之&#xff0c;闭包让开发者可以从内部函数访问外部函数的作用域。在 JavaScr…