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

互联网创业项目排行榜网站性能优化的方法有哪些

互联网创业项目排行榜,网站性能优化的方法有哪些,archigo建筑网站,饲料 东莞网站建设LeetCode热题100(三十四) —— 23.合并K个升序链表 题目描述代码实现思路一:选择排序(199ms)思路二:归并排序(2ms) 思路解析 你好,我是杨十一,一名热爱健身的程序员在Coding的征程中,不断探索与…

LeetCode热题100(三十四) —— 23.合并K个升序链表

  • 题目描述
  • 代码实现
    • 思路一:选择排序(199ms)
    • 思路二:归并排序(2ms)
  • 思路解析

  • 你好,我是杨十一,一名热爱健身的程序员
  • 在Coding的征程中,不断探索与成长
  • LeetCode热题100——刷题记录(不定期更新)
    此系列文章用于记录我在学习 LeetCode热题100 过程中的总结和收获
    愿与诸君共同探讨,在代码世界里携手共进,攻克难题,提升自我

题目描述

给你一个链表数组,每个链表都已经按升序排列。
请你将所有链表合并到一个升序链表中,返回合并后的链表。
示例 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.length0 <= k <= 10^40 <= lists[i].length <= 500-10^4 <= lists[i][j] <= 10^4lists[i] 按 升序 排列lists[i].length 的总和不超过 10^4

代码实现

思路一:选择排序(199ms)

class Solution {public ListNode mergeKLists(ListNode[] lists) {ListNode newHead = new ListNode();ListNode newTail = newHead;while (true) {int index = -1;int minVal = Integer.MAX_VALUE;for (int i = 0; i < lists.length; i++) {if (lists[i] != null && lists[i].val < minVal) {index = i;minVal = lists[i].val;}}if (index == -1) break;newTail .next = lists[index];newTail = newTail .next;lists[index] = lists[index].next;}return newHead.next;}
}

思路二:归并排序(2ms)

class Solution {public ListNode mergeKLists(ListNode[] lists) {if (lists.length == 0) return null;if (lists.length == 1) return lists[0];int currentLength = lists.length;while (currentLength != 1) {int i = 0;while (i < currentLength / 2) {lists[i] = merge(lists[i * 2], lists[i * 2 + 1]);if (i > 0) {lists[i * 2] = null;lists[i * 2 + 1] = null;}i++;}if (currentLength % 2 == 1) {lists[i] = lists[currentLength - 1];currentLength = currentLength / 2 + 1;} else {currentLength = currentLength / 2;}}return lists[0];}public ListNode merge(ListNode nodeA, ListNode nodeB) {ListNode newHead = new ListNode();ListNode newTail = newHead;while (nodeA != null && nodeB != null) {if (nodeA.val < nodeB.val) {newTail.next = nodeA;nodeA = nodeA.next;} else {newTail.next = nodeB;nodeB = nodeB.next;}newTail = newTail.next;}if (nodeA == null) newTail.next = nodeB;if (nodeB == null) newTail.next = nodeA;return newHead.next;}
}
  • 数据结构
/** Definition for singly-linked list */
public class ListNode {int val;ListNode next;ListNode() {}ListNode(int val) { this.val = val; }ListNode(int val, ListNode next) { this.val = val; this.next = next; }
}

思路解析

  1. 输入:链表头节点的数组ListNode[] lists
  2. 输出:合并后的有序链表头节点ListNode newHead
  3. 思路一:选择排序
    • 遍历所有链表的头节点,将其中最小的添加至有序的newHead链表中
    • 被选中节点的下一个节点作为该链表新的头节点

在这里插入图片描述

  1. 思路二:归并排序
    • 两两链表进行合并,参考LeetCode热题100(二十七)链表 —— 合并两个有序链表
    • 将合并后的结果保存在原数组中,需注意:
      • 合并过程中当链表数量为奇数时,最后单个的链表添加至数组末尾

在这里插入图片描述


  • 你好,我是杨十一,一名热爱健身的程序员
  • 在Coding的征程中,不断探索与成长
  • LeetCode热题100——刷题记录(不定期更新)
    此系列文章用于记录我在学习 LeetCode热题100 过程中的总结和收获
    愿与诸君共同探讨,在代码世界里携手共进,攻克难题,提升自我
http://www.hkea.cn/news/819417/

相关文章:

  • 东莞网站优化科技有限公司怀柔网站整站优化公司
  • 郑州网站建设联系方式外链是什么意思
  • 用wordpress做网站教程电脑优化大师有用吗
  • 佛山企业网站制作今日热点新闻事件
  • 企业网站网络推广黑帽seo培训
  • 欧美做的爱爱网站有哪些广告推广赚钱
  • 泉州网站建设工作室谷歌seo价格
  • 国建设委员会网站百度推广一天烧几千
  • 做网站 花园路国贸营销推广方案包括哪些内容
  • 做商城网站哪里买口碑营销属于什么营销
  • 鞋子 东莞网站建设真正的免费建站在这里
  • 网站上微信的链接怎么做项目平台
  • 做网站后有人抢注关键词网络营销方案策划论文
  • 苏州网站建设网站seo优化的方法
  • 设计网装修seo顾问服
  • 网站ip拦截免费网站搭建平台
  • 深圳企业网站建设公司快速申请免费个人网站
  • 唯品会 一家专门做特卖的网站沈阳seo按天计费
  • 聊城手机网站建设郑州seo服务技术
  • 个人定做衣服店江门seo推广公司
  • 网站开发与网站建设山东济南seo整站优化费用
  • 香港疫情最新消息今天深圳seo教程
  • 维护一个网站难吗免费发布外链
  • 南安市网站建设成都今天重大新闻事件
  • 网站后台补丁如何做软文有哪几种类型
  • 网站建设的费用包括哪些内容资讯门户类网站有哪些
  • 一站式服务图片制作网页的基本步骤
  • 个人网站建设网站网络网站推广
  • asp做的药店网站模板北京百度快照推广公司
  • 网站建设泉州效率网络seo的优化策略有哪些