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

深网著名网站东莞人才市场招聘会时间

深网著名网站,东莞人才市场招聘会时间,广州网站建设圣矢,网站建设国标行业分类287 . 寻找重复数#xff08;中等#xff09; 方法 快慢指针 思路 要解决这道题首先要理解如何将输入的数组看作为链表。对于数组 nums 中的数字范围在 [1, n]#xff0c;考虑两种情况#xff1a; 如果数组中没有重复的数字#xff0c;以 [1, 3, 4, 2] 为例#xff0c;将…287 . 寻找重复数中等 方法 快慢指针 思路 要解决这道题首先要理解如何将输入的数组看作为链表。对于数组 nums 中的数字范围在 [1, n]考虑两种情况 如果数组中没有重复的数字以 [1, 3, 4, 2] 为例将数组下标 n 和 nums[n] 建立映射关系f(n)即 n-f(n)0-1, 1-3, 2-4, 3-2 从下标 0 出发 根据 f(n) 计算出一个值以这个值为新的下标依次类推直到下标越界这样产生了一个类似链表的序列0-1-3-2-4-null 如果数组中有重复的数字以 [1, 3, 4, 2, 2] 为例 其映射关系为 n-f(n)0-1, 1-3, 2-4, 3-2, 4-2 此时的“链表序列”为0-1-3-2-4-2-... 出现了循环2-4-2-4-...如下图所示。 因此如果数组中出现重复的数字那么就一定会产生多对一的映射所以“链表序列”一定会有“环”。综上数组中有重复的整数 数组中存在环找到数组中重复的整数 找到链表中的环入口。 针对这类型的题目就需要使用快慢指针慢指针走一步快指针走两步即 slow nums[slow] fast nums[nums[fast]] 。 当 slow fast 时二者走到相遇点记为 y 。将环的入口点记为 x 链表起始点记为 h设 链表起始点 h 到 x 的距离为 a x 到 y 的距离为 b 。 由于 “慢指针走过的距离是快指针的一半” 则有 2 * (a b) a b (y 到 x 的距离) b 因此 y 到 x 的距离就等于 0 到 x 的距离 【注意这里的 y 到 x 的距离可能走了很多圈】。此时再设置两个新指针一个从 0 出发一个从相遇点 y 出发两个指针相遇的地方即为 环的入口点 x 。 代码 class Solution { public:int findDuplicate(vectorint nums) {int slow 0, fast 0;// 找到相遇点do{slow nums[slow];fast nums[nums[fast]];}while(slow ! fast);// 找到起始点// 起始点-环的起点 环的起点-相遇点int pre1 0, pre2 slow;while(pre1 ! pre2){pre1 nums[pre1];pre2 nums[pre2];}return pre1;} };
http://www.pierceye.com/news/817896/

相关文章:

  • 网站搭建原理网页制作工程师
  • 中国工程建设交易信息网站邢台百度爱采购
  • 保定建设网站公司qq登陆 wordpress
  • 博客网站开发环境专业外贸网站建设公司价格
  • 响应式电商网站制作企业咨询诊断报告
  • 企业网站怎么建设公司展厅装修设计
  • 怎么联系网站管理员怎么做拍卖网站
  • 山东威海网站开发长沙新媒体运营公司
  • 社保网站做员工用工备案wordpress登录查看
  • 做网站公司名字应该用图片吗沃尔玛公司网站建设案例分析
  • 网站空间大小多少合适做关于车的网站
  • 专注咖啡相关的网站wordpress 访问缓慢
  • 自适应网站制作官网网站域名与建设
  • 淘宝网站开发成本武进建设局网站进不去
  • 比较好网站制作公司行业协会网站织梦模板
  • 牛人网络网站像wordpress一样的网站吗
  • 那种做任务的网站叫什么wordpress 数据库 旧Ip
  • 制作深圳网站建设百度推广广告收费标准
  • 电影采集网站建设国产做爰全免费的视频网站
  • 集团网站建设特点 助君长春seo公司网站
  • 网站域名备案 更改吗在线做文档的网站
  • 青海网站制作多少钱做网站教程pdf
  • dw做网站背景音乐wordpress 获取当前文章id
  • 上海鹭城建设集团网站icp备案查询
  • 企业站用什么程序做网站深圳手机报价网站
  • 网站开发国外研究状况建设部相关网站
  • 租赁网站开发台州网站优化
  • 网站开发人员工工资网站开发一个支付功能要好多钱
  • 工程建设管理网站源码网站怎样做地理位置定位
  • 太仓公司网站建设电话网络公关名词解释