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

龙泉驿区建设局网站引流推广平台软件

龙泉驿区建设局网站,引流推广平台软件,成都专业做网站公司哪家好,wordpress centos 7安装什么是双指针#xff08;对撞指针、快慢指针#xff09;双指针#xff0c;指的是在遍历对象的过程中#xff0c;不是普通的使用单个指针进行访问#xff0c;而是使用两个相同方向#xff08;快慢指针#xff09;或者相反方向#xff08;对撞指针#xff09;的指针进行…什么是双指针对撞指针、快慢指针双指针指的是在遍历对象的过程中不是普通的使用单个指针进行访问而是使用两个相同方向快慢指针或者相反方向对撞指针的指针进行扫描从而达到相应的目的。换言之双指针法充分使用了数组有序这一特征从而在某些情况下能够简化一些运算。在LeetCode题库中关于双指针的问题还是挺多的。双指针截图来之LeetCode中文官网用法对撞指针对撞指针是指在有序数组中将指向最左侧的索引定义为左指针(left)最右侧的定义为右指针(right)然后从两头向中间进行数组遍历。对撞数组适用于有序数组也就是说当你遇到题目给定有序数组时应该第一时间想到用对撞指针解题。伪代码大致如下function fn (list) {var left 0;var right list.length - 1;//遍历数组while (left right) {left;// 一些条件判断 和处理... ...right--;} } 举个LeetCode上的例子以LeetCode 881救生艇问题为例由于本题只要求计算出最小船数所以原数组是否被改变和元素索引位置都不考虑在内所以可以先对于给定数组进行排序再从数组两侧向中间遍历。所以解题思路如下对给定数组进行升序排序初始化左右指针每次都用一个”最重的“和一个”最轻的“进行配对如果二人重量小于Limit则此时的”最轻的“上船即left。不管”最轻的“是否上船”最重的“都要上船即right--并且所需船数量加一即num代码如下var numRescueBoats function(people, limit) {people.sort((a, b) (a - b));var num 0let left 0let right people.length - 1while (left right) {if ((people[left] people[right]) limit) {left}right--num}return num }; 快慢指针快慢指针也是双指针但是两个指针从同一侧开始遍历数组将这两个指针分别定义为快指针fast和慢指针slow两个指针以不同的策略移动直到两个指针的值相等或其他特殊条件为止如fast每次增长两个slow每次增长一个。以LeetCode 141.环形链表为例,判断给定链表中是否存在环可以定义快慢两个指针快指针每次增长一个而慢指针每次增长两个最后两个指针指向节点的值相等则说明有环。就好像一个环形跑道上有一快一慢两个运动员赛跑如果时间足够长跑地快的运动员一定会赶上慢的运动员。解题代码如下/*** Definition for singly-linked list.* function ListNode(val) {* this.val val;* this.next null;* }*//*** param {ListNode} head* return {boolean}*/ var hasCycle function(head) {if (head null || head.next null) {return false}let slow headlet fast head.nextwhile (slow ! fast) {if (fast null || fast.next null) {return false}slow slow.nextfast fast.next.next}return true }; 再比如LeetCode 26 删除排序数组中的重复项这里还是定义快慢两个指针。快指针每次增长一个慢指针只有当快慢指针上的值不同时才增长一个由于是有序数组快慢指针值不等说明找到了新值。真实代码var removeDuplicates function (nums) {if (nums.length 0) {return 0;}let slow 0;for (let fast 0; fast nums.length; fast) {if (nums[fast] ! nums[slow]) {slow;nums[slow] nums[fast];}}return slow 1; }; 总结当遇到有序数组时应该优先想到双指针来解决问题因两个指针的同时遍历会减少空间复杂度和时间复杂度。欢迎关注微信公众号——【较真的前端相关题目LeetCode.141.环形链表 LeetCode.026.删除数组中重复的项LeetCode.881.救生艇参考文献《LeetBook》双指针【算法总结--数组相关】双指针法的常见应用。1.4.2 双指针技巧二
http://www.zqtcl.cn/news/599981/

相关文章:

  • 做盗版网站韩国服装网站建设
  • 网站策划书籍推荐高端网站设计制作的
  • 优秀电商设计网站有哪些微博网站可以做兼职吗
  • 网站建设 验证码电子商务网站建设流程图
  • 做内贸什么网站资源比较多岳阳网上房地产
  • 去国外网站开发客户中的contact us 没有邮箱失败营销案例100例
  • 网站怎么做图片动态图片大全靖江 建设局网站
  • 汉子由来 外国人做的网站wordpress微信小程序部署
  • 兰州网站建设最新招聘信息江苏网站建设简介模板
  • 最具口碑的企业网站建设企业做网站的流程
  • wordpress多语言企业网站网页制作工具按其制作方式有几种类型
  • 2019年做网站还有机会吗wordpress 虚拟订阅插件
  • 网站都有后台吗怀柔网站建设
  • phpcms 图片网站免费商城网站建设
  • 网站虚拟主机租用中铁建设门户网登录初始密码
  • 网站哪个公司做的好网站建设与管理指什么软件
  • 提升学历要多少钱seo关键字优化技巧
  • 代理会计公司网站模版哪家培训机构学校好
  • 开江建设局网站怎么做让自己的网站
  • 个人建设网站要钱吗专门用来制作网页的软件是什么
  • 关键词挖掘站网seo点击软件手机
  • 建设局考试通知文件网站推广普通话的手抄报
  • 移动端网站排名海淀区seo引擎优化多少钱
  • 福田网站建设联系电话免费开商城网站吗
  • 网站备案本人承诺备案 网站建设方案书
  • 图片网站模板wordpress首页模板文件
  • 做外国网站怎么买空间网站策划方案ppt
  • 网站建设全网推广小程序外贸网站建设980
  • 具有营销价值好的网站常德农科院网站
  • 网站域名如何起男女直接做的视频上那个网站