博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(LeetCode-数组-2) 只出现一次的数字
阅读量:5977 次
发布时间:2019-06-20

本文共 984 字,大约阅读时间需要 3 分钟。

1.只出现一次的数字

给定一个整数数组,除了某个元素外其余元素均出现两次。请找出这个只出现一次的元素。

分析:

1.利用异或位运算的特性

int singleNumber(vector
& nums) { int count=0; for(int i=0;i

2.只出现一次的数字 II

给定一个整型数组,除了一个元素只出现一次外,其余每个元素都出现了三次。求出那个只出现一次的数。

分析:

1.只有一个元素出现一次,其他元素出现三次
2.出现三次的元素每位上的1的和为3的倍数

int singleNumber(vector
& nums) { int result=0; for(int i=0;i<8*sizeof(int);i++) { int count=0; for(int j=0;j
>i)&1; } result+=(count%3)<

3.只出现一次的数字 III

给定一个整数数组 nums,其中恰好有两个元素只出现一次,其他所有元素均出现两次。 找出只出现一次的那两个元素
给定 nums = [1, 2, 1, 3, 2, 5]返回 [3, 5].

分析:

1.两次出现的数在异或中抵消,留下两个不同出现一次的数
2.找到这两个数结果位上的第一个1的index
3.以index区分这两个数,并重新将数组分为两个子数组,这两个数分别在这两个数组中

vector
singleNumber(vector
& nums) { vector
result(2); int sum=0,j,low=0,high=nums.size()-1; for(int i=0;i
>j)&1)break; while(low
>j)&1))low++; while((nums[high]>>j)&1)high--; if(low

转载地址:http://tkpox.baihongyu.com/

你可能感兴趣的文章
第二次冲刺 第七天
查看>>
矩阵之矩阵乘法(转载)
查看>>
Python _内置函数3_45
查看>>
cf-Igor In the Museum (dfs)
查看>>
数据之路 Day4 - Python基础4
查看>>
使用openCV打开USB摄像头(UVC 小米micro接口)
查看>>
Luogu P3577 [POI2014]TUR-Tourism
查看>>
Scrapy框架的基本使用
查看>>
ActionResult,PartialViewResult,EmptyResult,ContentResult
查看>>
关于泛型类,泛型接口,泛型函数
查看>>
@pathvariable和@RequestParam的区别
查看>>
测试驱动开发
查看>>
C++操作符重载
查看>>
Redis实现分布式锁2
查看>>
【Udacity】线性回归方程 Regression
查看>>
前端架构设计1:代码核心
查看>>
RPC 框架通俗解释 转自知乎(洪春涛)
查看>>
获取cookie后,使用cookie进行接下来的自动化操作
查看>>
算法笔记--数论模板小集(待增)
查看>>
SASS初学者入门(转)
查看>>