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

排序算法刷题【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;
}


http://www.mrgr.cn/news/8652.html

相关文章:

  • 【微信小程序】自定义组件 - behaviors
  • Android13 app后台无法启动Abort background activity starts from
  • C++ JAVA源码 HMAC计算 openssl 消息认证码计算 https消息防篡改 通信安全
  • 代码随想录算法训练营第58天|拓扑排序精讲、dijkstra(朴素版)精讲
  • 音源编曲:各种编曲音源推荐和运用场景
  • UE5用蓝图实现物体A始终朝向物体B |Find Look at Rotation|
  • 普通项目解决跨域问题和springSecurity解决跨域问题
  • 【学术会议征稿】2024年计算机与信息安全国际会议(WCCIS 2024)
  • 并行程序设计基础——组通信(2)
  • 【精选】基于大数据的___银行信用卡用户的数仓系统的设计与实现(全网独一无二,最新定制)
  • 中学教师资格笔试题库及答案
  • linux定期统计某个目录内每天的文件增量大小
  • ROUTE_STATUS
  • 微信小程序:开发工具修改js编译后还是旧的js逻辑
  • React Hooks 的高级用法
  • 数据库系统 第21节 ACID 属性
  • BZOJ 五月胡乱补题
  • pikachu SSRF通关(服务器端请求伪造)
  • Kubernetes
  • 企业选择raksmart大带宽服务器的原因