当前位置: 首页 > news >正文

网站注册域名查询网站测试

网站注册域名查询,网站测试,做网站赚钱 知乎,国际要闻今日头条这道题真的是中等题吗?我请问呢??我怎么觉得是困难题呢? 这道题的思路太难想了,想不出来,直接去看的这位大佬的题解,写得很清楚。 这道题可以将其转化为环形链表问题,可是为什么只要…


这道题真的是中等题吗?我请问呢??我怎么觉得是困难题呢?
这道题的思路太难想了,想不出来,直接去看的这位大佬的题解,写得很清楚。
这道题可以将其转化为环形链表问题,可是为什么只要存在重复元素,按照i -> nums[i]的映射方式一定能构成环呢?以下是我的思考:

  1. 题目保证只存在一个重复的数,其余数最多只出现一次,由于下标范围为[0, n],有n + 1个不同的下标,但是数组中最多只会有n个(一个数重复2次,其余元素各不相同,只出现一次),也可能少于n个,因此对于i -> nums[i]的映射,nums[i]的个数一定会小于i的个数,所以一定会出现哈希冲突,出现哈希冲突的就是我们要找的重复的数。
  2. 在上面的基础上,我们可以建立一个递推关系,我们根据下标i,得到映射nums[i],然后再以nums[i]为下标,得到映射nums[nums[i]](注意,1 <= nums[i] <= n,永远不会出现越界访问,因此得到的下标nums[nums[i]]只会有两种状态,一种是此前尚未访问过下标nums[nums[i]],此次为第一次访问;另一种就是此前已经访问过下标nums[nums[i]]),经过不断地迭代递推,由于一定存在哈希冲突,在某一次得到映射nums[nums[i]]时,此时下标nums[nums[i]]曾经被访问过此时就存在环了。
  3. 在链表中,我们通过快慢指针来做,慢指针每次向后移动一位,慢指针每次向后移动两位,在本题中,慢指针每次映射一次,而快指针每次映射两次,这个构造思路特别巧妙,在构造出快慢指针的移动操作后,我们就可以按照常规的142.环形链表Ⅱ来做了,具体的思路可以看下我这篇博客。
    下面是代码
class Solution {
public:int findDuplicate(vector<int>& nums) {int slow = 0; //慢指针int fast = 0; //快指针slow = nums[slow];fast = nums[nums[fast]];//一定存在环,先让慢指针停留在特定位置while(slow != fast){slow = nums[slow];fast = nums[nums[fast]];}//再定义一个慢指针int slow1 = 0;while(slow1 != slow){slow1 = nums[slow1];slow = nums[slow];}return slow;}
};

这道题是力扣hot100的最后一道,刷完这道题还给了个勋章,唉,终于坚持下来了。

http://www.wangmingla.cn/news/4765.html

相关文章:

  • 动态网站开发实训报告1百度seo流量
  • 局域网内做网站温州网站建设开发
  • 做视频网站如何赚钱seo顾问张智伟
  • 手机做公司网站站长平台
  • 邯郸去哪做网站改版杭州搜索引擎排名
  • 中企动力网站开发汕头seo建站
  • 做网站什么是解析什么是跳转游戏代理免费加盟
  • 目前主流的网站开发语言百度客服转人工
  • wordpress英文企业主题爱站网seo培训
  • 公司网站定位建议高端营销型网站建设
  • 呼和浩特做网站电商运营工资一般多少钱一个月
  • 崇州企业网站建设app搜索优化
  • 网上建立网站百度信息流广告位置
  • 专做韩国代购的网站seo网站排名的软件
  • wordpress 变成垃圾邮件seo超级外链工具
  • 2003建立虚拟网站南京今日新闻头条
  • 个人网站建设软件宁德市
  • 中国广告设计网seo收录查询
  • 南宁网站建设设计制作永久免费制作网页
  • 网站制作软件都是什么网站运营及推广方案
  • 公司网站建设的方案市场推广方案怎么做
  • 如何电话推销客户做网站江门网站优化公司
  • 莫邻在线客服系统网店seo排名优化
  • DW做网站下拉列表怎么做网站策划方案书
  • 北京做网站的公司排行郑州网络seo
  • 做网站设计怎么进企业济南网站制作
  • 没有有知道钓鱼网站在哪儿做网站网页的优化方法
  • 网站推广网络推广金华网站推广
  • 表述网站建设流程正规赚佣金的平台
  • 免费自动建站nba最新排行