当前位置: 首页 > 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/93735.html

相关文章:

  • 赣州做网站哪家好百度搜索引擎广告投放
  • 在郑州网站建设seo优化上首页
  • 建立网站的工具建设网站需要多少钱
  • 重庆网上房地产信息网官网站长工具seo查询5g5g
  • 免费网站建设社区参考网是合法网站吗?
  • 全网营销的四大优势北京seo外包
  • 建设厅网站2015154网站推广的方式
  • 中国建设银行网站怎么登录不上去民宿平台搜索量上涨
  • 最超值的赣州网站建设外贸国际网站推广
  • idc数据中心厦门seo排名优化
  • 做seo需要会网站开发吗河南靠谱seo地址
  • 网站建设需要多少钱百度快照投诉中心
  • 全国建设工程信息网站潍坊网站收录
  • 携程网站建设神马推广
  • 网站里面添加支付怎么做网络整合营销理论案例
  • 找人做网站产生纠纷算诈骗吗重庆网站搜索排名
  • 怎样做网站的反链合肥seo搜索优化
  • 建设网站的知识市场推广方案怎么写
  • 个人网站怎么做在线推广网站的方法
  • 自己怎么拍做美食视频网站竞价托管服务多少钱
  • 跟老外做网站百度认证官网申请
  • 做网站用多大配置的服务器网络推广公司电话
  • 百度搜不到我的网站网络兼职平台
  • 城市建设和房屋管理部门网站google关键词指数
  • 社区网站建设资金申请seo网站优化排名
  • 拿网站的文章做外链怎么开展网络营销推广
  • php网站开发优势百度站长工具平台登录
  • 网页设计制作代码大全seo优化顾问服务
  • 网站换域名了怎么做301重定向班级优化大师的功能
  • 做午夜电影网站杭州seo排名优化