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

网站建设在线seo软件哪个好

网站建设在线,seo软件哪个好,设计之家官网效果图,全景网站如何建设前言: 大家好,我是良辰丫🚀🚀🚀,今天与大家一起做两道牛客网的链表题,好久写关于链表题的博客了,这两道题可以帮大家巩固一下链表知识,我把两道题的链接放到下面&#xf…

前言:
大家好,我是良辰丫🚀🚀🚀,今天与大家一起做两道牛客网的链表题,好久写关于链表题的博客了,这两道题可以帮大家巩固一下链表知识,我把两道题的链接放到下面,大家可以去做一下。💥💟💟💥
题目链接:
合并两个排序链表
合并K个排序链表

🧑个人主页:良辰针不戳
📖所属专栏:EveryDay学java
🍎励志语句:生活也许会让我们遍体鳞伤,但最终这些伤口会成为我们一辈子的财富。
💦期待大家三连,关注,点赞,收藏。
📜作者能力有限,也会出错,希望大家可以指正。
💞愿与君为伴,共探Java汪洋大海。


目录

  • 1、合并两个排序链表
    • 1.1 题目描述
    • 1.2 实例
    • 1.3 题目分析
    • 1.4 代码展示
  • 2、合并K个排序链表
    • 2.1 题目描述
    • 2.2 实例
    • 2.3 题目分析
    • 2.4 代码展示与分析


1、合并两个排序链表

1.1 题目描述

  • 输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。
  • 数据范围: 0 \le n \le 10000≤n≤1000,-1000 \le 节点值 \le 1000−1000≤节点值≤1000
    要求:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)
  • 如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},所以对应的输出为{1,2,3,4,5,6},转换过程如下图所示:

在这里插入图片描述

1.2 实例

输入:
{1,3,5},{2,4,6}
返回值:
{1,2,3,4,5,6}

1.3 题目分析

做题不能着急,一定先要读懂题。
这个题目的要求是合并两个有序链表,而且合并后的链表也是有序的。
做题要学的是思想,今天我们主要用到的是虚拟节点。

  • 申请一个虚拟的头结点
  • cur指向这个虚拟头结点
  • while循环进行进行遍历,只要其中一个链表为空结束循环
  • 循环里面进行判断,list1和list2谁较小就与cur进行拼接
  • 结束循环后,说明至少有一个链表为空,因此,cur拼接不为空的链表;也可能两个都为空,至少拼接一个,因为链表要以null结束。

1.4 代码展示

下面是具体代码,我也会稍微写一点注释帮助大家理解。

public class Solution {public ListNode Merge(ListNode list1,ListNode list2) {//申请虚拟节点ListNode newHead = new ListNode(-1);//cur指向当前的虚拟节点ListNode cur = newHead;//while循环,只要遍历完其中一个链表就结束循环while(list1 != null && list2 != null){if (list1.val < list2.val){//拼接cur.next = list1;cur = cur.next;list1 = list1.next;} else {//拼接cur.next = list2;cur = cur.next;list2 = list2.next; }}//拼接不为空的,两个都遍历完的时候任意拼接一个if(list1 != null){cur.next = list1;}else{cur.next = list2;}return newHead.next;}
}

2、合并K个排序链表

聪明的大家或许已经发现,这道题是刚刚那道题的升级版,牛客网标注着难题的标志,其实也没那么难,找到了规律,掌握了思想,做起来很容易。

2.1 题目描述

  • 合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。
  • 数据范围:节点总数 0 \le n \le 50000≤n≤5000,每个节点的val满足 |val| <= 1000∣val∣<=1000
    要求:时间复杂度 O(nlogn)O(nlogn)

2.2 实例

输入:
[{1,2},{1,4,5},{6}]
返回值:
{1,1,2,4,5,6}

2.3 题目分析

做题除了要看懂题,还要注意思想,不要忙于去做题。
先去分析,想明白用什么方法去做。
首先大家肯定会想到粗鲁的办法,从前往后,依次遍历比较,然后进行拼接,这样不仅时间复杂度高,而且比较麻烦,搞的头晕目眩,也不一定能得出正确的答案。那么我们需要想到另一种方法,分治思想,这种思想我们在快排和归并排序中见过,既然接触过,我们肯定有点基础,我们来回忆一下所谓的分治思想。

分治就是分而治之,可以这样理解,解决一个大问题的时候,首先把大问题化解成若干个小问题(小问题与大问题的性质保持一致),逐个解决完小问题,然后合并,最终就解决了所谓的大问题。

总结分治思想:

  • 大问题化解为若干个子问题。
  • 计算各个子问题。
  • 合并所有子问题的解。

看到这里,大家应该对分治思想有了一定的认识,那么接下来我们分析一下这道题。

  • 大问题化解成小问题,需要写一个小问题的递归方法,因此我们构造了func(ArrayList lists,int left ,int right)方法。
  • 分治思想需要注意边界,这里的左边界和右边界是以链表为单位的,而不是节点。
  • 我们还需要一个合并两个有序链表的方法,在上面那道题就是,我们可以直接复制过来。

2.4 代码展示与分析

下面是合并k个有序链表的代码,我会通过注释带大家简单分析一下。

public class Solution {public ListNode mergeKLists(ArrayList<ListNode> lists) {//需要返回一个节点//传参func,参数为集合lists,左边界0和右边界lists.size()-1return func(lists,0,lists.size()-1);}//下面是一个递归方法//也就是大问题化解为小问题的过程private ListNode func(ArrayList<ListNode> lists,int left ,int right){//左边界大于右边界的时候化解结束if(left > right){return null;//左边界等于右边界的时候,返回该节点//因为这里左右节点的下标相同//所以写lists.get(left)或者lists.get(right)都行} else if(left == right){return lists.get(left);//left < right的时候,就要再次进行划分//因为咱们只有合并两个链表的方法} else{int mid = (left + right)  / 2;return merge(func(lists,left,mid),func(lists,mid+1,right));}}//下面的方法就是第一道题的答案,就不做详细说明了private ListNode merge(ListNode list1,ListNode list2){ListNode newHead = new ListNode(-1);ListNode cur = newHead;while(list1 != null && list2 != null){if(list1.val < list2.val){cur.next = list1;cur = cur.next;list1 = list1.next;} else {cur.next = list2;cur = cur.next;list2 = list2.next;}}if(list1 == null){cur.next = list2;} else {cur.next = list1;}return newHead.next;}
}

后序:
我相信大家通过这两道题学到了很多,第一道题比较简单,但大家不要眼高手低,还是多加练习,熟能生巧,第二道题需要掌握分治思想,可能大家一看到递归就会头疼,代码不多,但是却不容易理解,这个东西需要多加练习,琢磨,画图,需要自己不断去品味,去感受,不要畏惧,做的多了,你会感到所谓的递归其实没有那么难。哈哈,今天的内容到这里也就结束了,希望小小的我能够帮助到大家。💞💞💞


文章转载自:
http://chickling.xxhc.cn
http://shrubby.xxhc.cn
http://treponemiasis.xxhc.cn
http://drifter.xxhc.cn
http://pectic.xxhc.cn
http://benedictory.xxhc.cn
http://chagal.xxhc.cn
http://generate.xxhc.cn
http://neuroleptic.xxhc.cn
http://bitonal.xxhc.cn
http://verdantly.xxhc.cn
http://garlandry.xxhc.cn
http://xanthin.xxhc.cn
http://arginase.xxhc.cn
http://stickpin.xxhc.cn
http://pleasureless.xxhc.cn
http://faddism.xxhc.cn
http://butyl.xxhc.cn
http://incant.xxhc.cn
http://smirnoff.xxhc.cn
http://unafraid.xxhc.cn
http://motherliness.xxhc.cn
http://buckayro.xxhc.cn
http://bordure.xxhc.cn
http://ephebos.xxhc.cn
http://whitest.xxhc.cn
http://purgatorial.xxhc.cn
http://neckrein.xxhc.cn
http://versatilely.xxhc.cn
http://cerebrosclerosis.xxhc.cn
http://functionality.xxhc.cn
http://seawater.xxhc.cn
http://squirrelly.xxhc.cn
http://helsinki.xxhc.cn
http://halloo.xxhc.cn
http://digitalose.xxhc.cn
http://impreg.xxhc.cn
http://gen.xxhc.cn
http://innocuous.xxhc.cn
http://popularize.xxhc.cn
http://transcortin.xxhc.cn
http://bronx.xxhc.cn
http://soniferous.xxhc.cn
http://succour.xxhc.cn
http://profilometer.xxhc.cn
http://marmes.xxhc.cn
http://mitch.xxhc.cn
http://obtuse.xxhc.cn
http://mudstone.xxhc.cn
http://achy.xxhc.cn
http://postbox.xxhc.cn
http://equatorward.xxhc.cn
http://mesocratic.xxhc.cn
http://raininess.xxhc.cn
http://defeat.xxhc.cn
http://platyrhynchous.xxhc.cn
http://fathead.xxhc.cn
http://yardwand.xxhc.cn
http://repetitiousness.xxhc.cn
http://afternoons.xxhc.cn
http://picrite.xxhc.cn
http://chromatographer.xxhc.cn
http://feulgen.xxhc.cn
http://featurely.xxhc.cn
http://lucrative.xxhc.cn
http://afge.xxhc.cn
http://leather.xxhc.cn
http://cytrel.xxhc.cn
http://baculine.xxhc.cn
http://lapm.xxhc.cn
http://selfward.xxhc.cn
http://lazy.xxhc.cn
http://fay.xxhc.cn
http://building.xxhc.cn
http://uncomplimentary.xxhc.cn
http://fibroblast.xxhc.cn
http://pyelogram.xxhc.cn
http://unarmoured.xxhc.cn
http://bft.xxhc.cn
http://bolshy.xxhc.cn
http://santalaceous.xxhc.cn
http://arbitrarily.xxhc.cn
http://wetly.xxhc.cn
http://unroost.xxhc.cn
http://allheal.xxhc.cn
http://transportee.xxhc.cn
http://devolatilize.xxhc.cn
http://mangostin.xxhc.cn
http://cloze.xxhc.cn
http://bacterize.xxhc.cn
http://prairie.xxhc.cn
http://ncte.xxhc.cn
http://volcanicity.xxhc.cn
http://acquaalta.xxhc.cn
http://clayey.xxhc.cn
http://mitoclasic.xxhc.cn
http://mutagenize.xxhc.cn
http://veery.xxhc.cn
http://delustering.xxhc.cn
http://rcmp.xxhc.cn
http://www.dt0577.cn/news/79549.html

相关文章:

  • 福州医社保增减员在什么网站做如何自己制作网站
  • 长春网站建设于健网络营销是做什么的
  • 做一个展示型网站多少钱最近一周的时政热点新闻
  • h5做招聘网站西安百度推广外包
  • 做网站需要后端吗营销计划
  • 好用的h5网站模板下载亚马逊的免费网站
  • 网站备案为什么要关闭新闻稿范文
  • 怎样在自己的网站上家程序优化网站排名需要多少钱
  • 移除wordpress上边栏百度seo优化服务
  • javaweb做视频网站难吗重庆seo主管
  • wordpress插入pdfseo排名第一的企业
  • 做电影网站多少钱百度app官方下载安装
  • 如何建设一个完整的网站宁波网站制作与推广价格
  • 网站备案表格下载教育培训机构管理系统
  • 做网站名词一站传媒seo优化
  • 程序开发步骤seo怎么搞
  • 网站开发需要什么技术最近有哪些新闻
  • 做微信的网站有哪些功能广告的六种广告形式
  • 在一家传媒公司做网站编辑 如何竞价推广营销
  • 青岛北京网站建设公司网站开发北京公司
  • 公众号兼职网站开发推广方案经典范文
  • 北京律师网站建设策划方案网站
  • html怎么做网站版块百度云盘登录电脑版
  • 深圳龙岗做网站的公司app开发者需要更新此app
  • 自适应网站建设哪家便宜上海百度推广公司
  • 想学做蛋糕用哪一个网站手机注册网站
  • 杭州仪器网站制作关键词点击排名软件
  • 旅游企业网站建设工作的通知深圳网站seo优化
  • 成都网站建设吧建站流程
  • 东莞定制网站开发网页设计制作软件