欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > 排序算法刷题【leetcode88题目:合并两个有序数组、leetcode21:合并两个有序链表】

排序算法刷题【leetcode88题目:合并两个有序数组、leetcode21:合并两个有序链表】

2024/10/25 6:22:08 来源:https://blog.csdn.net/qq_50299271/article/details/141405203  浏览:    关键词:排序算法刷题【leetcode88题目:合并两个有序数组、leetcode21:合并两个有序链表】

一、合并两个有序数组

        题目比较简单,使用归并排序里面的同样的操作就可以,代码如下所示

#include <iostream>
#include <vector>
using namespace std;/* leetcode88题:合并两个有序数组 */
class Solution {
public:void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {int p1 = m - 1, p2 = n - 1, p3 = m + n - 1;while (p1 != -1 || p2 != -1){//注意“||”两端的条件最终得到拷贝数组中的元素的动作是相同的才可以if (p1 == -1 || p2 != -1 && (nums1[p1] <= nums2[p2]))   {nums1[p3--] = nums2[p2--];}else{nums1[p3--] = nums1[p1--];}}return;}
};int main()
{return 0;
}

二、合并两个有序链表

#include <iostream>
#include <vector>
using namespace std;/* leetcode88题:合并两个有序数组 */
class Solution {
public:void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {int p1 = m - 1, p2 = n - 1, p3 = m + n - 1;while (p1 != -1 || p2 != -1){//注意“||”两端的条件最终得到拷贝数组中的元素的动作是相同的才可以if (p1 == -1 || p2 != -1 && (nums1[p1] <= nums2[p2]))   {nums1[p3--] = nums2[p2--];}else{nums1[p3--] = nums1[p1--];}}return;}
};/* leetcode:21题,合并两个有序链表,采用的算法和合并数组一样 */
/* 直接创建一个头节点,从前向后(从小到大)的顺序插入排序就可以了 */
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 ret, * p1 = &ret;   //如果只创建一个指针,是没有链表元素的指针和元素的内存的,所以不能存储下一个节点地址。while (list1 || list2){if (list1 == NULL || list2 != NULL && (list2->val <= list1->val)){p1->next = list2;list2 = list2->next;p1 = p1->next;}else{p1->next = list1;list1 = list1->next;p1 = p1->next;}}return ret.next;}
};int main()
{return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com