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

网站psd模版百度推广的价格表

网站psd模版,百度推广的价格表,iis默认网站停止,wordpress英文版教程leetcode 148 思路 遍历链表并收集节点:将链表中的每个节点断开其 next 指针后存入数组对数组进行排序:使用 JavaScript 的内置 sort 方法对节点数组按值排序重新连接排序后的节点:遍历排序后的数组,依次连接每个节点形成新链表…

leetcode 148
在这里插入图片描述

思路

  • 遍历链表并收集节点:将链表中的每个节点断开其 next 指针后存入数组
  • 对数组进行排序:使用 JavaScript 的内置 sort 方法对节点数组按值排序
  • 重新连接排序后的节点:遍历排序后的数组,依次连接每个节点形成新链表

时间复杂度:O (n log n) 空间复杂度:O (n)

实现

var sortList = function (head) {if (!head) return head;let cur = head;const arr = [];while (cur) {const node = cur.next;cur.next = null;arr.push(cur);cur = node;}arr.sort((a, b) => a.val - b.val)let result = arr[0];cur = result;for (let i = 1; i < arr.length; i++) {cur.next = arr[i]cur = cur.next;}return result;
};

优化-归并排序

上面的解法简单直观,会更容易理解,但是空间复杂度是O(n),利用归并排序可以将空间复杂度优化到O(1)

归并思路

归并排序的核心思想是分治法:

  1. 分割:将链表从中间分成两部分
    • 使用快慢指针法找到链表中点
    • 断开中点连接,形成两个独立子链表
  2. 递归排序:分别对左右子链表递归进行排序
    • 递归处理每个子链表,直到链表为空或只剩一个节点(自然有序)
  3. 合并:将两个有序子链表合并为一个有序链表
    • 使用虚拟头节点(dummy node)简化合并操作
    • 比较两个子链表的节点值,按升序连接
关键步骤解析
  1. 快慢指针找中点:
    • 快指针每次移动两步,慢指针每次移动一步
    • 当快指针到达末尾时,慢指针恰好指向中点
    • 注意处理偶数节点时中点的选择(代码中选择右半部分的第一个节点)
  2. 递归分割链表:
    • 递归处理左半部分 head 到 slow
    • 递归处理右半部分 slow.next 到末尾
  3. 合并有序链表:
    • 创建虚拟头节点 dummy 和移动指针 tail
    • 比较左右子链表当前节点值,将较小值的节点连接到 tail
    • 处理剩余节点(其中一个子链表可能先遍历完)

时间复杂度:O (n log n) 空间复杂度:O (1)

var sortList = function(head) {if (!head || !head.next) return head;// 计算链表长度let length = 0;let node = head;while (node) {length++;node = node.next;}const dummy = new ListNode(0);dummy.next = head;// 按步长分割合并,步长从1开始每次翻倍for (let step = 1; step < length; step <<= 1) {let prev = dummy;let cur = dummy.next;while (cur) {// 分割出两个长度为step的子链表const left = cur;const right = split(left, step);cur = split(right, step);// 合并两个子链表prev.next = merge(left, right);// 移动prev指针到合并后的末尾while (prev.next) {prev = prev.next;}}}return dummy.next;
};// 辅助函数:分割出长度为n的链表,并返回剩余部分的头节点
function split(head, n) {while (head && --n) {head = head.next;}if (!head) return null;const rest = head.next;head.next = null;return rest;
}

文章转载自:

http://wLxY19fR.nhpmn.cn
http://UiRbfP8D.nhpmn.cn
http://OGiWXrNL.nhpmn.cn
http://Wpj13m4g.nhpmn.cn
http://DnX8stVm.nhpmn.cn
http://GgNYWBJl.nhpmn.cn
http://swWewaCn.nhpmn.cn
http://xmOLrzWC.nhpmn.cn
http://lf18MaBq.nhpmn.cn
http://Pf0onSx2.nhpmn.cn
http://lELGdxbW.nhpmn.cn
http://v5bE1qzT.nhpmn.cn
http://fcyZK3Xb.nhpmn.cn
http://v3Ot3Au4.nhpmn.cn
http://ghnTIJ62.nhpmn.cn
http://0GHfwSPe.nhpmn.cn
http://hdhDByTm.nhpmn.cn
http://KXpIbaxO.nhpmn.cn
http://xe0KMnAB.nhpmn.cn
http://noHGMEDG.nhpmn.cn
http://6eGfhGSg.nhpmn.cn
http://nSmVgSds.nhpmn.cn
http://2PenP8vg.nhpmn.cn
http://MzP4cRwo.nhpmn.cn
http://ymEm2dqo.nhpmn.cn
http://gJqC14Qk.nhpmn.cn
http://7duHBlct.nhpmn.cn
http://ZuRdrlY3.nhpmn.cn
http://MB7FJ1S5.nhpmn.cn
http://ufcKqZPV.nhpmn.cn
http://www.dtcms.com/wzjs/660277.html

相关文章:

  • 网站 备案信息免费域名网站php
  • 做网站维护难吗建设com网站
  • js效果网站有人用dw做网站吗
  • 电脑网站设计页面企信宝
  • 建站论坛网站后台怎么做友情链接
  • 酷站网素材同城网站开发
  • 青岛知名网站建设定制wordpress 图片 网盘
  • 闸北区网站设计与制作企业网站怎么建立
  • 北语网站appwordpress有多强大
  • 哪个网站做处理货小程序网站开发是用什么语言
  • 玉环建设规划局网站手机网站建设论文
  • 电商网站排行榜深圳企业网站制作公司
  • 非专业人士可以做网站编辑的工作吗网站建设电话话术
  • 网站设计制作策划网站建设优化服务案例
  • jz做网站张家港网站建设哪家好
  • 企业还做网站吗中国建筑出版在线官网
  • 长春专业网站推广wordpress 添加幻灯片
  • 西宁招聘网站开发广州网站制作选哪家
  • 网站会员整合网站开发 模板 c
  • 南宁网站建设及推广工作室官网源码
  • 荆州网站seo网站建设相关新闻
  • 做网站和做网页丹阳论坛
  • 黄石网站建设黄石网站模版编辑器
  • 自助建站永康网站建设zjyuxun
  • 如何增强网站的安全性网站 制作
  • 外贸型网站的特点台州优秀关键词优化
  • 好用的手机网站主页wordpress最好用php
  • 精美网站源码下载网站建设深
  • 长沙机械网站建设江苏省交通工程建设局网站
  • 卖水果网站建设的策划书wordpress 自动短链接