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

制作一个网站的全过程做商城网站

制作一个网站的全过程,做商城网站,网络报警平台,传奇手游盒子app平台排行榜题目详情 给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 1: 输入:lists [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释:链表数组如下…

题目详情

给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。

示例 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

解题思路

采用分治法 + 迭代合并策略高效合并 K 个有序链表:

  1. 边界处理
  • 若链表数组为空或长度为 0,直接返回 null
  • 若只有一个链表,无需合并,直接返回该链表
  1. 分治合并
  • 初始化当前链表数量 n = lists.length
  • n > 1 时循环:
    • 计算新链表数量 newN = (n + 1) / 2
    • 遍历链表数组,每次处理两个链表:
      • 合并 lists[2*i]lists[2*i+1](若存在)
      • 将合并结果存回 lists[i] 位置
    • 更新 n = newN 进行下一轮合并
  • 最终合并结果位于 lists[0]
  1. 合并两个链表
  • 使用哑节点 dummy 简化链表头处理
  • 双指针遍历两个链表,比较节点值,将较小节点接入新链表
  • 当一个链表遍历完时,将另一链表剩余部分直接接入

代码实现(Java版)

class Solution {public ListNode mergeKLists(ListNode[] lists) {int n = lists.length;if (n == 0) return null;if (n == 1) return lists[0];while (n > 1) {int newN = (n + 1) / 2;for (int i = 0; i < n / 2; i++) {lists[i] = mergeTwoLists(lists[2 * i], lists[2 * i + 1]);}if (n % 2 == 1) {lists[newN - 1] = lists[n - 1];}n = newN;}return lists[0];}private ListNode mergeTwoLists(ListNode l1, ListNode l2) {ListNode dummy = new ListNode();ListNode cur = dummy;while (l1 != null && l2 != null) {if (l1.val <= l2.val) {cur.next = l1;l1 = l1.next;} else {cur.next = l2;l2 = l2.next;}cur = cur.next;}cur.next = (l1 != null) ? l1 : l2;return dummy.next;}
}

代码说明

  1. 主方法 mergeKLists
  • 边界处理:直接处理空数组或单链表情况
  • 分治合并
    • n 表示当前待合并的链表数量
    • newN = (n + 1) / 2 计算合并后链表数量
    • 循环合并相邻链表:lists[i] = mergeTwoLists(lists[2*i], lists[2*i+1])
    • 处理奇数链表:将最后一个链表移至 newN-1 位置
    • 更新 n = newN 进行下一轮合并
  • 返回 lists[0]:最终合并结果
  1. 辅助方法 mergeTwoLists
  • 哑节点dummy 统一处理头节点
  • 双指针遍历
    • 比较 l1l2 节点值,较小者接入新链表
    • 移动对应链表指针及新链表指针 cur
  • 剩余链表处理:循环结束后将非空链表剩余部分直接接入

提交详情(执行用时、内存消耗)

在这里插入图片描述

http://www.dtcms.com/wzjs/581779.html

相关文章:

  • 网站开发工具与环境网站开发 方案概要
  • 聊城有什么网站制作公司深圳龙华医院
  • 家居企业网站建设流程保山企业网站建设
  • 做网站成功案例培训心得体会300字
  • 重庆万州网站建设报价如何做网站进行推广
  • 忻州做网站中国企业网官网登录入口
  • 网站建设技术外包平台设计思路怎么写
  • 一站式网站建设架构一站式媒体发稿平台
  • 盐城哪家专业做网站商城服务是怎么赚钱
  • 宁波网站建设设计报告简述常用的网站开发软件
  • 整网站代码 带数据 免费 下载返利淘网站怎么做
  • html5 自适应网站简书 用wordpress
  • 网站的开发公司倒闭对网站使用公众号开发用什么工具
  • 女装市场网站建设费用评估桂林网站建设培训班
  • 网站架构图图怎么制作营销网站
  • 驾校网站模版vs做的网站图片显示不了
  • 贵阳网站建设技术托管理解电子商务网站建设与管理
  • 专业网站建设公司在线咨询推荐网站建设收费标准
  • 怎做不下网站刷枪wordpress插件怎么打开
  • 做网站的框架组合浙江常升建设有限公司网站
  • 浙江网站建设实验心得找钟点工做的网站
  • 一个虚拟主机可以做几个网站贵州网站备案
  • 做网站的时候卖过假货而出过事校园网站怎么做
  • 网站建设开票分类编码网站文件解压
  • 上海网站推广费用广州网站设计权威乐云践新
  • 进行网站建设的上市公司石家庄建设网
  • 虚拟网站官网小程序制作公司开发
  • 怎么做网站和注册域名上海网站开发有限公司
  • 论坛网站建设价格国外门户网站设计
  • 旅游网站策划wordpress数据库名