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

建网站策划方案网站建设 请示

建网站策划方案,网站建设 请示,muse网站设计解决方案视频教程,wordpress在线报名插件这道题真的是中等题吗?我请问呢??我怎么觉得是困难题呢? 这道题的思路太难想了,想不出来,直接去看的这位大佬的题解,写得很清楚。 这道题可以将其转化为环形链表问题,可是为什么只要…


这道题真的是中等题吗?我请问呢??我怎么觉得是困难题呢?
这道题的思路太难想了,想不出来,直接去看的这位大佬的题解,写得很清楚。
这道题可以将其转化为环形链表问题,可是为什么只要存在重复元素,按照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.yayakq.cn/news/573601/

相关文章:

  • 网站开发与托管协议广州冼村事件
  • 做采购 通常在什么网站看c 做网站
  • 网站案例响应式如何建个使用自己帐户的网站
  • 能建网站的app网站开发 卡片
  • 婚庆网站html模板wordpress 筛选功能
  • 广州婚恋网站排名能用二级域名做网站吗
  • 网站群 建设 方案江苏住建厅特种作业证
  • 网站如何识别移动端大连做网站科技有限公司
  • 陌陌网站开发成本织梦网站上传新闻
  • 宁夏网站设计在哪里浪味仙儿 wordpress
  • 网站运营优化方案郑州官网网络营销外包
  • 如何自建购物网站小程序游戏开发公司
  • 巴南网站建设网站建设大数据服务案例
  • 大学网站建设说明书制作外贸网站公司
  • 谁帮58同城做的网站吗手套外包加工网
  • 微信公众号第三方平台seoul怎么读
  • 运城市网站建设长沙圭塘网站建设公司
  • 网站域名建设费进什么科目js网页制作代码大全
  • 怎样让google收录网站wordpress禁用字体
  • 企业网站制作需要多少钱信誉好的购物网站
  • 黄岛网站制作个人博客网站如何做SEO
  • 烟台网站公司简单的响应式网页实例
  • 平度市网站建设建设部网站查资质6
  • 网络推广平台cpa短视频seo询盘获客系统
  • 英文网站怎么切换中文长春市住房建设局网站
  • 重庆seo网站推广费用怎样用网站做淘宝推广
  • 盘锦微商网站建设舞蹈网站建设报价
  • 企业网站选择第三方还是自己做专业的网站建设哪家快
  • 做酒吧设计的网站网页开发流程图
  • 建设公积金网站深圳网站制作哪家价格便宜