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

做体力活的网站上海网站制作公司哪

做体力活的网站,上海网站制作公司哪,北京网站建设网页设计,如何制作自己的网站链接视频leetcode 234 思路 利用快慢指针法链表反转实现 对于链表反转的实现,在之前的博文里面有记录:链表反转 快慢指针的核心思想是找到链表的中点,把中点后面的部分进行反转,然后把后半部分反转后的链表和前半部分进行比较&#xf…

leetcode 234
在这里插入图片描述

思路

利用快慢指针法+链表反转实现

对于链表反转的实现,在之前的博文里面有记录:链表反转
快慢指针的核心思想是找到链表的中点,把中点后面的部分进行反转,然后把后半部分反转后的链表和前半部分进行比较,如果一致则说明是回文链表

为什么利用快慢指针可以找点链表中点呢?

因为快指针走两步,慢指针走一步,快指针走的步长是慢指针的两倍,当快指针走到末尾的时候,慢指针刚好走了一半
具体步骤如下:

  • 找到链表中点:使用快慢指针,快指针 fast 每次移动两步,慢指针 slow 每次移动一步。当快指针 fast 到达链表末尾或者 fast 的下一个节点为空时,慢指针 slow 正好指向链表的中点(如果链表长度为偶数,slow 指向的是前半部分的最后一个节点)
  • 反转链表后半部分:从 slow 的下一个节点开始,对链表的后半部分进行反转操作。这里可以使用经典的链表反转算法,通过改变节点的指针方向实现链表反转
  • 比较前后两部分:设置两个指针,一个指针 p1 指向链表头节点 head ,另一个指针 p2 指向反转后的后半部分链表的头节点。然后依次比较 p1 和 p2 指向节点的 val 值,如果在比较过程中发现不相等的值,直接返回 false ;如果能顺利比较完所有节点,则返回 true

实现

var isPalindrome = function (head) {let slow = head, fast = head;while (fast && fast.next) {slow = slow.next;fast = fast.next.next;}// 反转后半部分链表let reverse = getReverseList(slow);while (reverse) {if (reverse.val !== head.val) {return false}reverse = reverse.next;head = head.next}return true
};// 获取反转链表
function getReverseList(head) {let pre = null;let cur = head;while (cur) {const node = cur.next;cur.next = pre;pre = cur;cur = node;}return pre;
}

实现链表

一般leetcode上的题目都是给的一个数组:head = [1,2],我们想要去调试,需要手动将这个数组转换为链表的类型,下面就是数组转链表的实现函数

export class Nodelist {constructor(value) {this.val = value;this.next = null}
}export function getNode(arr) {const head = new Nodelist(arr[0])const len = arr.length;let cur = head;for (let i = 1; i < len; i++) {cur.next = new Nodelist(arr[i])cur = cur.next;}return head
}
http://www.dtcms.com/a/418723.html

相关文章:

  • Jenkins运维之路(Jenkins使用Mysql作为信息存储)
  • 爬虫访问第三方 HTTPS 网站时遇到的 SSL 异常处理
  • JavaWeb 课堂笔记 —— 22 登录校验
  • 整合营销传播案例广西网络优化seo
  • Mac电脑解决 npm 和 Yarn 安装时的证书过期问题
  • JavaScript继承详讲
  • 怎么理解ES的shard和segment
  • AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
  • 新乡网站关键词优化电商网站开发实战视频教程
  • 公司无网站无平台怎么做外贸wordpress检查php版本号
  • Spark核心Shuffle详解(二)ShuffleHandler
  • React Native启动性能优化实战:Hermes + RAM Bundles + 懒加载
  • 怎么做淘宝客个人网站wordpress可视化编辑插件下载
  • [C++项目框架]gflags和gtest的简单介绍
  • Vue2 和 Vue3 中使用 Vue Router 的详细过程
  • 微服务项目->在线oj系统(Java-Spring)-后台管理(2)
  • 【MySQL体系】第2篇:MySQL索引类型和原理
  • flash型的著名网站网站开发公司怎么接单
  • 【第五章:计算机视觉-项目实战之图像分割实战】2.图像分割实战:人像抠图-(1)人像抠图Image Matting算法详解
  • 使用 PyTorch 构建并训练 CNN 模型
  • 如何做电影网站狼视听seo外包优化服务商
  • blender布局工作区突然变得很卡
  • 【计算机视觉】图像去雾技术
  • 工信部网站icp备案号文艺范wordpress主题
  • 树莓派无法播放哔哩哔哩等视频
  • 华为芯片泄密案警示:用Curtain e-locker阻断内部数据泄露
  • 记一次达梦数据库的查询异常
  • 泸州市建设工程管理局网站58网站怎么做品牌推广
  • 个人主题网站设计论文北京seo推广系统
  • AI编程开发系统001-基于SpringBoot+Vue的旅游民宿租赁系统