剑指 Offer II 070. 排序数组中只出现一次的数字
找出那只单身狗:
正文开始@Assassin
目录:
- 找出那只单身狗:
- 1. 题目描述:
- 2. 思路:
- 2.1 异或的基本概念:
- 2.1.1 符号表示:
- 2.1.2 运算规则:
- 2.1.3 异或的性质:
- 3. 题解:
- see you next blog~~
1. 题目描述:
给定一个只包含整数的有序数组nums ,每个元素都会出现两次,唯有一个数只会出现一次,请找出这个唯一的数字。
示例 1:
输入: nums = [1,1,2,3,3,4,4,8,8]
输出: 2
示例 2:
输入: nums = [3,3,7,7,10,11,11]
输出: 10
来源:力扣(LeetCode)
点我跳转到leetcode!!
2. 思路:
这道题用异或的思路是最优解~~
这里先简单介绍一下异或的概念:
2.1 异或的基本概念:
2.1.1 符号表示:
异或是一种二进制的位运算,符号以 XOR 或 ^ 表示。也就是本质上是按二进制位异或。
2.1.2 运算规则:
按照二进制位相同为0,不同为1,即:
1 ^ 1 = 0
0 ^ 0 = 0
1 ^ 0 = 1
由运算规则可知,任何数与0异或,都会等于其本身,即 0 ^ A = A。
任何数与其本身异或,都会等于0,即 A ^ A = 0。
2.1.3 异或的性质:
(1)交换律: A ^ B = B ^ A(2)结合律: ( A ^ B ) ^ C = A ^ ( B ^ C )(3)自反性: A ^ B ^ B = A (由结合律可推: A ^ B ^ B = A ^ ( B ^ B ) = A ^ 0 = A)
话不多说,我们干正事儿~~
3. 题解:
提示: 使用位操作符异或可以快速找出单独的数字,两个相同数字异或为零,零与任何数字异或为本身,这样便可以达到排除偶数次重复的操作。
int singleNonDuplicate(int* nums, int numsSize){ int ret=0;//保存结果for(int i=0;i<numsSize;++i){ret^=nums[i];//依次遍历异或数组中的每一个数,最终剩下的便是单身狗}return ret;
}
时间复杂度为O(n)
see you next blog~~
剑指 Offer II 070. 排序数组中只出现一次的数字相关推荐
- 剑指offer面试题[40]-数组中只出现一次的数字
题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 注意原题目要求空间复杂度为0(1). 位运算的具体思路可以参看剑指offer. class So ...
- 剑指 Offer II 006. 排序数组中两个数字之和
由于题目中数组已经排好序,所以可以用双指针 双指针: i=0,j=nums.size( )-1 当 i<j 时循环,当目标小于target时i++,当目标大于target时,j-- 当目标小于t ...
- 【剑指offer-Java版】40数组中只出现一次的数字
数组中只出现一次的数字:输入一个数组,该数组中有两个数字只出现了一次,其他数字都出现了两次,求出这两个只出现了一次的数字 要求时间复杂度为O(n)空间复杂度为O(1) 考虑一个数组中只有一个数字仅仅出 ...
- 剑指offer:二维数组中的查找
目录 题目 解题思路 具体代码 题目 题目链接 剑指offer:二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺 ...
- 利用指针数组计算2个3行4列矩阵的和_[剑指 Offer] 04. 二维数组中的查找
难度:简单 题目链接:剑指 Offer 04. 二维数组中的查找 题目描述: 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数, ...
- 剑指 Offer 04. 二维数组中的查找
剑指 Offer 04. 二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个高效的函数,输入这样的一个二维数组和一个 ...
- 【LeetCode】剑指 Offer 04. 二维数组中的查找
[LeetCode]剑指 Offer 04. 二维数组中的查找 文章目录 [LeetCode]剑指 Offer 04. 二维数组中的查找 package offer;public class Solu ...
- 剑指 Offer II 049. 从根节点到叶节点的路径数字之和
剑指 Offer II 049. 从根节点到叶节点的路径数字之和: 题目链接 :剑指 Offer II 049. 从根节点到叶节点的路径数字之和 题目: 给定一个二叉树的根节点 root ,树中每个节 ...
- [剑指Offer]5.二维数组中的查找
题目 在一个二维数组中,每一行都依照从左到右递增的顺序排序,每一列都依照从上到下递增的顺序排序.请完毕一个函数,输入这种一个二维数组和一个整数.推断数组中是否含有该整数. 思路 [算法系列之三十三]杨 ...
最新文章
- 链接3: SQL语句教程
- 六年磨一剑,全时发布音视频会议平台TANG,多款新品亮相
- MPB:军科院杨瑞馥、毕玉晶等-​​培养组学方法优化(视频)
- 代码实践 | CVPR2020——AdderNet(加法网络)迁移到检测网络(代码分享)
- java string转number_Java 序列化
- SQL统计指定的一列多少种取值
- Unity预计算全局实时GI(gi params)
- 论文笔记(SocialGCN: An Efficient Graph Convolutional Network based Model for Social Recommendation)
- oracle ndv,CBO_ORACLE
- Codeforces Gym101518H:No Smoking, Please(最小割)
- face.evoLVe:高性能人脸识别开源库,内附高能模型
- zoj 1406 Jungle Roads
- 解决 SmallPDF 联网验证和试用期过期问题
- Spring+Hibernate 零散知识点
- 车载双目相机,老兵的二次出征
- 案例|工业物联网解决方案·光伏电站
- 网络视频会议软件哪个好?欢迎大家补位!
- WEB自动化学习路线(转载)
- 标鸽知产商标自助注册流程
- linux系统日志排故方案,Linux系统故障排查思路与常见案例
热门文章
- 印度打车软件Ola将登陆伦敦,或将取代被吊销伦敦执照的Uber
- 华为发布The New P30 Pro新机:全新配色+EMUI10系统
- 真无线蓝牙耳机霸主之争:苹果AirPods和索尼WF-1000XM3怎么选?
- 索尼PS5突然“上架”?预购价约7244元...
- 新一季“十大最堵互联网公司”出炉:360百度腾讯跻身三甲
- 雅迪发布高端智能电动车G5 这个售价真的会有人买吗?
- 苹果锤完Facebook 又轮到谷歌了
- 内核模块编程之_初窥门径【ZT】
- java让两个线程交替_java两个线程实现: 两个线程交替打印字母和数
- 屏幕旋转后_网易哒哒H5又又叒刷屏了,TCL·XESS 旋转智屏竟然是一大亮点