合并两个有序数组(88)合并两个有序链表(21)

ops/2025/1/23 21:19:47/

88. 合并两个有序数组 - 力扣(LeetCode)

21. 合并两个有序链表 - 力扣(LeetCode)

解法(88):

class Solution {
public:void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {for (; m > 0; --m){for (; n > 0; --n) {//从两个数组的尾->头开始比较if (nums1[m - 1] <= nums2[n - 1]) {nums1[m + n - 1] = nums2[n - 1];}else {nums1[m + n - 1] = nums1[m - 1];break;}}if (n == 0) {break;}}  if (n > 0) {for (int i = 0; i < n; ++i) {nums1[i] = nums2[i];}}}
};

解法(21):

/*** 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 (list2 == nullptr) {return list1;}if (list1 == nullptr) {return list2;}ListNode * tmp1 = list1;ListNode * tmp2 = list2;//用来记录tmp1 指针的 pre 指针ListNode * tmp1_pre = nullptr;while (tmp1 != nullptr && tmp2 != nullptr) {ListNode * next1_ = tmp1->next;ListNode * tmp2_ = tmp2;if (tmp1->val == tmp2->val) {tmp2 = tmp2->next;tmp1->next = tmp2_;tmp2_->next = next1_;}else if (tmp1->val > tmp2->val) {tmp2 = tmp2->next;swap(tmp1->val, tmp2_->val);tmp1->next = tmp2_;tmp2_->next = next1_;}tmp1_pre = tmp1;tmp1 = tmp1->next;}if (tmp2 != nullptr) {tmp1_pre->next = tmp2;}return list1;}};

总结:

(88)和(21)的时间复杂度都是O(m+n),空间复杂度都是O(1)。这里面有序数组为了做到空间复杂度O(1),需要从尾->头开始进行比较,而有序链表因为允许随机insert和delete,所以从头->尾开始进行比较


http://www.ppmy.cn/ops/152570.html

相关文章

C#操作Xml节点

见过不少人、经过不少事、也吃过不少苦&#xff0c;感悟世事无常、人心多变&#xff0c;靠着回忆将往事串珠成链&#xff0c;聊聊感情、谈谈发展&#xff0c;我慢慢写、你一点一点看...... 1、增加节点 public static bool AppendChild(string filePath, string xPath, XmlNod…

【Hadoop面试题2025】

文章目录 简单题故障及相应的处理方法中等难度高难度小文件小文件的产生小文件问题的影响小文件治理方案推荐方案 冷文件冷文件的产生冷文件问题的影响冷文件治理方案推荐方案 简单题 一、基础概念类 什么是Hadoop&#xff1f; 答案&#xff1a;Hadoop是一个开源的分布式计算框…

以太网实战AD采集上传上位机——FPGA学习笔记27

一、设计目标 使用FPGA实现AD模块驱动采集模拟电压&#xff0c;通过以太网上传到电脑上位机。 二、框架设计 数据位宽转换模块&#xff08;ad_10bit_to_16bit&#xff09;&#xff1a;为了方便数据传输&#xff0c;数据位宽转换模块实现了将十位的 AD 数据转换成十六位&#…

ASP.NET Core Web API 创建指南

一、引言 在当今数字化时代&#xff0c;Web 应用程序的开发至关重要。ASP.NET Core 作为一款现代、跨平台且开源的框架&#xff0c;以其卓越的性能、强大的功能和出色的灵活性&#xff0c;在 Web 开发领域占据着重要地位。它为开发者提供了构建高性能 Web 应用的有力工具&…

View Shadcn UI 2025.1.2 发布公告:全新跑马灯组件与多项优化更新

亲爱的开发者们&#xff1a; 我们很高兴地宣布 View Shadcn UI 2025.1.2 版本正式发布&#xff01;本次更新带来了全新的跑马灯组件&#xff0c;并对多个现有组件进行了功能增强和问题修复。 &#x1f680; 重要链接 GitHub 仓库&#xff1a;https://github.com/devlive-comm…

数据分析 基础定义

一、大数据的定义 数据分析是基于商业等目的&#xff0c;有目的的进行收集、整理、加工和分析数据&#xff0c;提炼有价值信息的过程。 大数据分析即针对海量的、多样化的数据集合的分析 大数据分析是一种利用大规模数据集进行分析和挖掘知识的方法。随着互联网、社交媒体、移动…

wx035基于springboot+vue+uniapp的校园二手交易小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…

什么是网络爬虫?Python爬虫到底怎么学?

最近我在研究 Python 网络爬虫&#xff0c;发现这玩意儿真是有趣&#xff0c;干脆和大家聊聊我的心得吧&#xff01;咱们都知道&#xff0c;网络上的信息多得就像大海里的水&#xff0c;而网络爬虫就像一个勤劳的小矿工&#xff0c;能帮我们从这片浩瀚的信息海洋中挖掘出需要的…