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

湖北专业的网瘾戒除学校排名靠前seo实战培训费用

湖北专业的网瘾戒除学校排名靠前,seo实战培训费用,西双版纳网站制作公司,商务型企业网站建设题干描述 23. 合并 K 个升序链表 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 1: 输入: lists [[1,4,5],[1,3,4],[2,6]] 输出: [1,1,2,3,4,4,5,6]…

题干描述

23. 合并 K 个升序链表

给你一个链表数组,每个链表都已经按升序排列。

请你将所有链表合并到一个升序链表中,返回合并后的链表。

示例 1:

输入: lists = [[1,4,5],[1,3,4],[2,6]]
输出: [1,1,2,3,4,4,5,6]
解释: 链表数组如下:
[1->4->5,1->3->4,2->6
]
将它们合并到一个有序链表中得到。
1->1->2->3->4->4->5->6

示例 2:

输入: lists = []
输出: []

示例 3:

输入: lists = [[]]
输出: []

提示:

  • k == lists.length
  • 0 <= k <= 10^4
  • 0 <= lists[i].length <= 500
  • -10^4 <= lists[i][j] <= 10^4
  • lists[i] 按 升序 排列
  • lists[i].length 的总和不超过 10^4

分析解答

合并多个升序数组,乍眼一看这?我不会啊?

但如果将多个改为合并两个,想必大家都会做了。依次比较两个链表的每一个节点,把它们连接起来即可。

那么多个不会,两个一眼就能想到解决办法的这部分问题,可以采用一个通用思想:分治!

使用一个递归的 helper 帮助我们将多个链表逐步拆分为两个。两个解决了,那么 K 个也就解决了。

代码如下:

/*** Definition for singly-linked list.* function ListNode(val, next) {*     this.val = (val===undefined ? 0 : val)*     this.next = (next===undefined ? null : next)* }*/
function ListNode(val, next) {this.val = (val === undefined ? 0 : val)this.next = (next === undefined ? null : next)
}/*** @param {ListNode[]} lists* @return {ListNode}*/
var mergeKLists = function (lists) {if (!lists.length) return null;return mergeHelper(lists, 0, lists.length - 1);
};
const mergeHelper = (lists, left, right) => {if (left === right) return lists[left];let mid = Math.floor((left + right) / 2);let l1 = mergeHelper(lists, left, mid);let l2 = mergeHelper(lists, mid + 1, right);return mergeTwoLists(l1, l2)
}
const mergeTwoLists = (l1, l2) => {let dummy = new ListNode(0);let current = dummy;while (l1 && l2) {if (l1.val < l2.val) {current.next = l1;l1 = l1.next;} else {current.next = l2;l2 = l2.next;}current = current.next;}current.next = l1 || l2;return dummy.next;
}

思路拓展

除了分治,我们还有什么其他方法吗?

http://www.tj-hxxt.cn/news/43048.html

相关文章:

  • 怎样做网站导购简述网络推广的方法
  • 荣县做网站的全网关键词云查询
  • 手机app下载网网站推广优化方案
  • 网站建设清单2023年10月爆发新冠
  • 网站建设前 需要准备的最新最好的磁力搜索
  • 东莞天助网的网站网站域名购买
  • qq中心官方网站手机最新产品新闻
  • 网站数据采集怎么做搜索引擎技术
  • 网站如何301sem和seo有什么区别
  • 蓝色网站建设深圳百度seo培训
  • 飞翔时代网站建设windows优化大师的特点
  • 找做网站百度广告太多
  • flash 做网站网络舆情应急预案
  • 哪里做网站的比较多软文网站名称
  • 公司网站设计素材陕西省人民政府
  • 苹果电脑用什么软件做网站产品推广方案ppt模板
  • 大庆网站制作百度排行榜风云榜小说
  • 做网站发违规内容 网警抓不抓网站优化seo推广服务
  • 江苏汇算清缴在哪个网站做网络优化的意义
  • 广州市做网站怎么设计网站
  • 陕西专业网站开发多少钱网站seo搜索
  • crm系统哪家好seo项目优化案例分析文档
  • 西安做网站程序bt磁力链好用的引擎
  • 学习网站建设要什么学历电子商务主要学什么内容
  • 简单的公司网站系统微信推广文案
  • 外贸网站注册网络推广都有什么方式
  • 西宁市建设委员会网站顺德搜索seo网络推广
  • 宁波外贸网站建设和推广ebay欧洲站网址
  • 数据来源网站怎么做脚注微信管理系统平台
  • 徐州建设局网新网站百度ai助手入口