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

上饶网站建设哪家好2345网址导航官网官方电脑版

上饶网站建设哪家好,2345网址导航官网官方电脑版,济南城乡建设官方网站,国内做网站需要做icp备案吗1.双指针介绍 双指针是解题时一种常见的思路,一般有两种用法。 1)两个指针反方向,分别从数组开头和结尾开始移动,例如对有序数组的搜索。 2)两个指针同方向移动,例如快慢指针,都是从数组开头…

1.双指针介绍

双指针是解题时一种常见的思路,一般有两种用法。

1)两个指针反方向,分别从数组开头和结尾开始移动,例如对有序数组的搜索。

2)两个指针同方向移动,例如快慢指针,都是从数组开头开始遍历,只是速度不一样。

除了用于数组,也可以用于链表,树,图。

2.反向的双指针

力扣icon-default.png?t=N2N8https://leetcode.cn/problems/two-sum-ii-input-array-is-sorted/

因为数组是非递减的,所以可以数组首尾各置一个指针,若值相加大于目标值,则尾指针自减,若值相加小于目标值,则头指针自增,这样就一步步逼近了目标值。

class Solution {
public:vector<int> twoSum(vector<int>& numbers, int target) {int i = 0, j = numbers.size()-1;while(i<j){int t = numbers[i] + numbers[j];if(target==t) return vector<int>({i+1,j+1});else if(target>t){i++;}else{j--;}}return vector<int>();}
};

3.同向的双指针

力扣icon-default.png?t=N2N8https://leetcode.cn/problems/linked-list-cycle-ii/这题有两个要点,先是要判断链表中是否有环,接着是找到环的入口。

判断是否有环,可以用快慢指针。

两个指针同时从起点出发,快指针一次两步,慢指针一次一步。

如果链表中有环,则快慢指针一定会相遇,就像在操场上一直跑圈,速度快的人一定会在某一刻比速度慢的人多跑一圈,所以二人相遇了。

若是快慢指针没有相遇,且快指针指向了NULL,那很明显,就是没有环。

确定链表有环后,就是寻找环的入口了。

可以用题目中的示例来简单理解一下。

下图使用快慢指针,从起点[3]出发,慢指针一次一步,快指针一次两步,很快这两个指针会在节点[-4]相遇。

相遇后,将慢指针移回链表起点[3],快慢指针都一次走一步,两个指针再次相遇的节点[2],就是环的入口。

 一个简单易懂的解释就是:

慢指针路径:起点--环的入口--快慢指针相遇的节点

快指针路径:起点--环的入口--快慢指针相遇的节点--环的入口--快慢指针相遇的节点

因为快指针路径==慢指针路径*2

所以【快慢指针相遇的节点--环的入口--快慢指针相遇的节点】== 【 起点--环的入口--快慢指针相遇的节点】

同时减去【环的入口--快慢指针相遇的节点】

所以【快慢指针相遇的节点--环的入口】== 【 起点--环的入口】

所以找到环得到入口就是将慢指针移到起点,与快指针都是一次一步,直到相遇,相遇节点就是环的入口。

如果还是没有理解的,可以直接搜索【Floyd 判圈法】找动画视频直观理解一下。

代码:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *detectCycle(ListNode *head) {if(!head) return NULL;ListNode* slow = head, *fast = head;while(slow->next && fast->next && fast->next->next){slow = slow->next;fast = fast->next->next;if(slow==fast){slow = head;while(slow!=fast){slow = slow->next;fast = fast->next;}return slow;}}return NULL;}
};

http://www.yidumall.com/news/52535.html

相关文章:

  • html5布局wordpress西安seo技术
  • web程序设计网站开发工具外贸营销型网站设计
  • 桃子网站windows优化大师值得买吗
  • 哪个网站可以学做包子个人博客网站怎么做
  • 自己电脑做网站好吗聚合搜索引擎入口
  • 网站建设自学 优帮云百度指数人群画像怎么看
  • 外贸双语网站源码seo合作
  • 数据库做网站aso优化app推广
  • 网站建设 用户管理国内新闻最新消息
  • 哈尔滨网站建设科技公司怎么创建网站教程
  • 做竞赛的平台或网站免费ip地址代理
  • 网站o2o巨量引擎广告投放平台
  • 沈阳网站建设三好街南通seo网站优化软件
  • 专业建设网站制作1小时快速搭建网站
  • asp在动态网站制作中的作用如何进行搜索引擎优化 简答案
  • 电脑做h5比较好的网站网站seo案例
  • 影响网站权重的因素有哪些企业内训机构
  • 卡盟网站建设优化课程
  • qq强制聊天网站源码合肥瑶海区
  • ecs 1核1g wordpress上海哪家seo好
  • 温州最新消息长沙seo男团
  • 郑州做网站哪家专业深圳网络推广外包
  • 网络科技公司的经营范围有哪些seo网络优化前景怎么样
  • 网站文章优化seo诊断的网络问题
  • 做网站 挣广告联盟的佣金站内seo优化
  • 免费设计网站素材滕州seo
  • 网站建设平台简介宁波网站推广制作
  • 网站开发时间进度表二十四个关键词
  • 南城区仿做网站seo优化技术培训
  • 网站建设 博贤科技潍坊seo网络推广