博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
633. 寻找重复的数
阅读量:4702 次
发布时间:2019-06-10

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

给出一个数组 nums 包含 n + 1 个整数,每个整数是从 1到 n (包括边界),保证至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。

 注意事项

1.不能修改数组(假设数组只能读)

2.只能用额外的O(1)的空间
3.时间复杂度小于O(n^2)
4.数组中只有一个重复的数,但可能重复超过一次

 
样例

给出 nums = [5,5,4,3,2,1],返回 5.

给出 nums = [5,4,4,3,2,1],返回 4.

 

1     int findDuplicate(vector
&nums) { 2 // write your code here 3 int left=1,right=nums.size()-1; 4 int mid=left+(right-left)/2; 5 int left_num; 6 while(left

自己没想出来,照着网上的思路写了一个

left是1,right是n。mid算出来以后遍历数组,看有多少小于等于它的,如果统计的数量小于等于mid这个数的本身,就说明重复的数在比mid大的那边。

于是就left=mid+1(因为不够嘛所以不要了)或者right=mid。最后left=right的值就是所求

转载于:https://www.cnblogs.com/TheLaughingMan/p/8183157.html

你可能感兴趣的文章
A1064. 排名计算
查看>>
ubuntu linux上配置samba服务器
查看>>
sdk 获取 vue 实例
查看>>
资源列表
查看>>
如何实现清浮动(转载)
查看>>
【Java程序】约瑟夫环
查看>>
借助第八代智能英特尔® 酷睿™ i7 处理器和 Unreal Swarm* 的强大性能快速构建光照...
查看>>
View Controller 生命周期的各个方法的用法
查看>>
去掉iview Modal组件中的取消和确定按钮
查看>>
媲美jQuery的JS框架----AngularJS(二)
查看>>
【译】Asp.Net 导出 Excel 数据的9种方案
查看>>
Python 快速统计数据的去重数和去重数据
查看>>
【心情随记】收拾屋子,整理心态
查看>>
课件动画做的牛不牛,看你有它没它!
查看>>
怎么用MindManager记笔记
查看>>
xargs命令
查看>>
java程序设计课程实验报告1
查看>>
密码的三重属性
查看>>
191. Number of 1 Bits
查看>>
通过划分的方式在线性时间内找出一个序列中第K大的元素
查看>>