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

中卫企业管理培训网站app开发公司怎么选择

中卫企业管理培训网站,app开发公司怎么选择,WordPress主题Perimg,甘肃省建设社厅网站文章目录 Tag题目来源题目解读解题思路方法一#xff1a;递归方法二#xff1a;迭代 写在最后 Tag 【递归】【迭代】【链表】 题目来源 21. 合并两个有序链表 题目解读 合并两个有序链表。 解题思路 一种朴素的想法是将两个链表中的值存入到数组中#xff0c;然后对数组… 文章目录 Tag题目来源题目解读解题思路方法一递归方法二迭代 写在最后 Tag 【递归】【迭代】【链表】 题目来源 21. 合并两个有序链表 题目解读 合并两个有序链表。 解题思路 一种朴素的想法是将两个链表中的值存入到数组中然后对数组进行升序排序最后将排序好的数组还原回链表这是一种可行的思路但是没有充分利用题目已知的两个链表有序的条件大家可以自行尝试练习基础语法与建立链表节点的知识。 方法一递归 我们记两个链表的头节点分别为 l1 和 l2在合并两个链表的时候会遇到以下三种情况 l1 为空直接返回 l2l2 为空直接返回 l1;两节点都不为空那么又会分为两种情况: l1 节点值小于 l2 节点值那么 l1 节点将会是合并后的节点新的头节点剩下的部分是 l1-next 和 l2 合并的节点而合并 l1-next 和 l2 是合并 l1 和 l2 的子问题也可以使用 mergeTwoLists 函数来解答于是有 l1-next mergeTwoLists(l1-next, l2)并返回 l1同理l2 节点值小于 l1 节点值时有 l2-next mergeTwoLists(l1, l2-next)并返回 l1。 以上这种将问题转换为原问题的子问题的方法称为递归方法。递归方法是一种边调用边填充的方法。 实现代码 C /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/ class Solution { public:ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {if (list1 nullptr) {return list2;}else if (list2 nullptr) {return list1;}else if (list1-val list2-val) {list1-next mergeTwoLists(list1-next, list2);return list1;}else {list2-next mergeTwoLists(list1, list2-next);return list2;}} };python3 # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # self.next next class Solution:def mergeTwoLists(self, l1: Optional[ListNode], l2: Optional[ListNode]) - Optional[ListNode]:if l1 is None:return l2elif l2 is None:return l1elif l1.val l2.val:l1.next self.mergeTwoLists(l1.next,l2)return l1else:l2.next self.mergeTwoLists(l1, l2.next)return l2 复杂度分析 时间复杂度 O ( m n ) O(mn) O(mn) m m m 和 n n n 分别为两个链表的长度每个节点都是被递归调用一次。 空间复杂度 O ( m n ) O(mn) O(mn)每调用一次函数 mergeTwoLists 都需要消耗栈空间栈空间的大小取决于递归调用的深度。 方法二迭代 迭代的方法是一种相对容易理解的方法。为了方便实现我们定义一个哑节点 dummyListNode* dummy new ListNode(-1);最后只需要返回 dummy-next。 我们再定义一个节点 prev 用来指向当前值较小的节点初始 prev dummy我们迭代枚举两链表中的节点 prev 指向值较小的节点值较小的节点更新为下一个节点方便下一对节点的比较prev 更新为下一个节点为存放下一个更小的节点做准备如果有一个链表为空了直接退出迭代循环需要注意这时候两个链表中可能还有一个链表非空需要将剩下的非空部分接在 prev 后面。 以上就是本题的迭代方法。 实现代码 C /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/ class Solution { public:ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {ListNode* dummy new ListNode(-1);ListNode* prev dummy;while(list1 list2){if(list1-val list2-val){prev-next list1;list1 list1-next;}else{prev-next list2;list2 list2-next;}prev prev-next;}prev-next list1 ? list1 : list2;return dummy-next;} };python3 # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # self.next next class Solution:def mergeTwoLists(self, l1: Optional[ListNode], l2: Optional[ListNode]) - Optional[ListNode]:dummy ListNode(-1)prev dummywhile l1 and l2:if l1.val l2.val:prev.next l1l1 l1.nextelse:prev.next l2l2 l2.nextprev prev.nextprev.next l1 if l1 is not None else l2return dummy.next复杂度分析 时间复杂度 O ( m n ) O(mn) O(mn) m m m 和 n n n 分别为两个链表的长度每个节点都是被递归调用一次。 空间复杂度 O ( 1 ) O(1) O(1)。 写在最后 如果文章内容有任何错误或者您对文章有任何疑问欢迎私信博主或者在评论区指出 。 如果大家有更优的时间、空间复杂度方法欢迎评论区交流。 最后感谢您的阅读如果感到有所收获的话可以给博主点一个 哦。
http://www.hkea.cn/news/14465457/

相关文章:

  • 最好的模板网站建设网站需要什么设施?
  • 会展网站的建设情况网站备案有时间吗
  • 企业网站管理系统标签手册网页设计师职业要求
  • 资源专业网站优化排名工厂生产管理系统软件
  • 网易网站开发成都旅游攻略四天三夜
  • 计算机系毕设代做网站网站 文件验证
  • c语言除了做网站还能干什么展示型企业网站建设
  • 自己做网站需要什么条件开发板推荐
  • 网站制作制作网站建网站食品行业网站开发
  • 做简单最网站的软件是广州公司注册费用及流程
  • 资海网络一年做多少网站电子商务网站服务器
  • delphi 2010 网站开发一个简单的个人网站
  • 国家有规定必须做可信网站验证seo投放
  • 一个刚有官网的公司怎么做网站运营传媒公司起名字大全免费
  • 网站开发信息平台项目总结免费商品列表网页模板源代码
  • 南昌网站优化网站开发中企动力官网登录
  • 服装网都有哪些网站wordpress插件没有设置
  • 网站开发进度管理表全自动网站制作系统
  • 国际网站模板网站建设狼雨
  • 网站开发选择框代码分销工具
  • 台州建设工程网站网站域名费
  • 杭州设计 公司 网站建设专业的深圳网站建设公司排名
  • 集团公司做网站wordpress 本地打开很慢
  • 邢台网站建设基本流程怎么做网站加盟
  • 备案ip 查询网站查询网站在线网页制作工具
  • 上传下载网站模板个人网页html模板
  • 软件综合课设做网站青岛海西建设集团官方网站
  • 榆次建设局网站网站制作案例价格
  • 郴州网站制作公司地址网站网络推广优化哪家好
  • 网站建设 小程序开发网站推广策划评估指标有哪些