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

动态网站开发视频网站推广方案策划书2000

动态网站开发视频,网站推广方案策划书2000,广西疫情2024,开发一款app需要投入多少钱题目 输入k个排序的链表,请将它们合并成一个排序的链表。 分析:利用最小堆选取值最小的节点 用k个指针分别指向这k个链表的头节点,每次从这k个节点中选取值最小的节点。然后将指向值最小的节点的指针向后移动一步,再比较k个指…

题目

输入k个排序的链表,请将它们合并成一个排序的链表。
在这里插入图片描述

分析:利用最小堆选取值最小的节点

用k个指针分别指向这k个链表的头节点,每次从这k个节点中选取值最小的节点。然后将指向值最小的节点的指针向后移动一步,再比较k个指针指向的节点并选取值最小的节点。重复这个过程,直到所有节点都被选取出来。

public class Test {public static void main(String[] args) {ListNode listNode1 = new ListNode(1);ListNode listNode2 = new ListNode(2);ListNode listNode3 = new ListNode(3);ListNode listNode4 = new ListNode(4);ListNode listNode5 = new ListNode(5);ListNode listNode6 = new ListNode(6);ListNode listNode7 = new ListNode(7);ListNode listNode8 = new ListNode(8);ListNode listNode9 = new ListNode(9);listNode1.next = listNode4;listNode4.next = listNode7;listNode2.next = listNode5;listNode5.next = listNode8;listNode3.next = listNode6;listNode6.next = listNode9;ListNode[] lists = {listNode1, listNode2, listNode3};ListNode result = mergeKLists(lists);while (result != null) {System.out.println(result.val);result = result.next;}}public static ListNode mergeKLists(ListNode[] lists) {ListNode dummy = new ListNode(0);ListNode cur = dummy;PriorityQueue<ListNode> minHeap = new PriorityQueue<>((n1, n2) -> n1.val - n2.val);for (ListNode list : lists) {if (list != null) {minHeap.offer(list);}}while (!minHeap.isEmpty()) {ListNode least = minHeap.poll();cur.next = least;cur = least;if (least.next != null) {minHeap.offer(least.next);}}return dummy.next;}
}

分析:按照归并排序的思路合并链表

输入的k个排序链表可以分成两部分,前k/2个链表和后k/2个链表。如果将前k/2个链表和后k/2个链表分别合并成两个排序的链表,再将两个排序的链表合并,那么所有链表都合并了。合并k/2个链表与合并k个链表是同一个问题,可以调用递归函数解决。

public class Test {public static void main(String[] args) {ListNode listNode1 = new ListNode(1);ListNode listNode2 = new ListNode(2);ListNode listNode3 = new ListNode(3);ListNode listNode4 = new ListNode(4);ListNode listNode5 = new ListNode(5);ListNode listNode6 = new ListNode(6);ListNode listNode7 = new ListNode(7);ListNode listNode8 = new ListNode(8);ListNode listNode9 = new ListNode(9);listNode1.next = listNode4;listNode4.next = listNode7;listNode2.next = listNode5;listNode5.next = listNode8;listNode3.next = listNode6;listNode6.next = listNode9;ListNode[] lists = {listNode1, listNode2, listNode3};ListNode result = mergeKLists(lists);while (result != null) {System.out.println(result.val);result = result.next;}}public static ListNode mergeKLists(ListNode[] lists) {if (lists.length == 0) {return null;}return mergeLists(lists, 0, lists.length);}private static ListNode mergeLists(ListNode[] lists, int start, int end) {if (start + 1 == end) {return lists[start];}int mid = (start + end) / 2;ListNode head1 = mergeLists(lists, start, mid);ListNode head2 = mergeLists(lists, mid, end);return merge(head1, head2);}private static ListNode merge(ListNode head1, ListNode head2) {ListNode dummy = new ListNode(0);ListNode cur = dummy;while (head1 != null && head2 != null) {if (head1.val < head2.val) {cur.next = head1;head1 = head1.next;}else {cur.next = head2;head2 = head2.next;}cur = cur.next;}cur.next = head1 == null ? head2 : head1;return dummy.next;}
}
http://www.hkea.cn/news/613050/

相关文章:

  • 临朐县网站建设利用搜索引擎营销成功的案例
  • 利用网盘做视频网站镇江优化推广
  • 视频微网站开发哪个公司网站设计好
  • 品网站建设智能搜索引擎
  • 怎样在百度建网站seo建设者
  • 四海网络网站建设咨询什么叫做网络营销
  • 安徽建设网官方网站优化分析
  • 网站根目录文件名游戏推广员是做什么的
  • 个体工商户怎么做网站西安网站seo技术
  • 报名网站制作2345网址导航官网下载安装
  • 图书购物网站开发总结百度发广告需要多少钱
  • 做网站 业务流程图站长统计性宝app
  • 长沙做网站大概多少钱万网域名注册教程
  • 成都网站建设网站产品推广计划书怎么写
  • 深圳个人网站建设大连网络推广公司哪家好
  • 建设工程教育appseo技术培训中心
  • 家教中介怎么利用网站来做的免费广告推广
  • wordpress仿制建设seo是什么平台
  • 商城网站建设分为几块seo臻系统
  • 网络营销对于个人而言有什么作用seo文章
  • 做书籍封皮的网站今日中国新闻
  • 东莞建设网站电工培训技术学校
  • 深圳聘请做网站人员成都排名seo公司
  • 网站备案之后东莞网站关键词优化公司
  • 多种专业网站建设潍坊网站排名提升
  • 网站投稿系统怎么做网站制作流程是什么
  • 交警网站建设整改百度推广怎么推广
  • 重庆网站建设哪里比较好呢网站下载
  • 网站运行速度慢的原因看b站二十四小时直播间
  • 电商网站开发服务全网营销骗局揭秘