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

实习冲刺Day7

算法题

合并两个有序链表

class Solution {
public:void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {for (int i = 0; i<n; ++i) {nums1[m + i] = nums2[i];//直接将num2的数据插入到num1的尾部}sort(nums1.begin(), nums1.end());//排序一下}
};

时间复杂度:O((m+n)log(m+n))。
排序序列长度为 m+n,套用快速排序的时间复杂度即可,平均情况为 O((m+n)log(m+n))。

空间复杂度:O(log(m+n))。
排序序列长度为 m+n,套用快速排序的空间复杂度即可,平均情况为 O(log(m+n))。

采用双指针的写法

class Solution {
public:void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {int* temp = (int*)malloc(sizeof(int) * (m + n));//开辟一个新数组,数组空间位m+nint i = 0, j = 0;//i指向num1,j指向num2int index = 0;//定义一个新数组的下标指针while (i < m && j < n) {if (nums1[i] >= nums2[j]) {//哪个小就先存哪个temp[index++] = nums2[j++];} else {temp[index++] = nums1[i++];}}while (i < m) {//如果num1有剩余,就将num1的剩余值加进新数组temp[index++] = nums1[i++];}while (j < n) {temp[index++] = nums2[j++];}index = 0;for (int i = 0; i < (m + n); i++) {nums1[i] = temp[index++];//因为要把数值合并到一个数组中,所以覆盖num1}free(temp);//释放内存}
};

基础知识

指针是什么有哪些用途?

  1. 变量地址引用:

int a;
int *p=&a;
  1. 动态内存的分配

int *p=(int*)malloc(1024);
  1. 数组与字符串操作

char str[] = "Hello"; 
char *ptr = str;
  1. 函数参数传递

void int(int *nums){}

引用和指针有什么区别?

  1. 引用必须初始化,且不能初始化为空,指针没有要求
  2. 引用不能修改引用指向,指针可以
  3. 引用没有多级引用的观点,指针可以有多级指针,一级指针,二级指针等
  4. 引用实质是指针常量
  5. 引用传递的则是实参本身,指针作为函数参数传递的其实是指针变量的值
  6. 引用用sizeof运算符计算的就是指向的变量本身的大小,指针则是指针变量的大小
  7. 引用用起来比指针更安全,指针有悬挂指针,野指针等
  8. 引用代码看起来比指针简洁

http://www.lryc.cn/news/471833.html

相关文章:

  • 《Python游戏编程入门》注-第4章1
  • 一些硬件知识【2024/10/29】
  • 利用弱监督学习在全切片病理图像中检测和分型基底细胞癌|文献速递-基于生成模型的数据增强与疾病监测应用
  • leetcode刷题笔记——15.三数之和
  • NLTK无法下载?
  • 采用非递归快排实现找出数组中的前k个高频元素(python)
  • Java题集练习4
  • sql进阶篇
  • 代码工艺:SQL 优化的细节
  • 天池蚂蚁AFAC大模型挑战赛-冠军方案(含代码)
  • [QUIC] Packets 和 Frames 概述
  • QT编辑框带行号
  • Kafka认证时Successfully logged in真的认证成功了?
  • 软考信息系统管理师,系统集成项目管理工程师,考哪一个合适?
  • AI学习指南自然语言处理篇-位置编码(Positional Encoding)
  • macOS 15 Sequoia dmg格式转用于虚拟机的iso格式教程
  • 【01初识】-初识 RabbitMQ
  • CTF-RE 从0到N:汇编层函数调用
  • 雷池社区版compose配置文件解析-mgt
  • 无人机避障——4D毫米波雷达Octomap从点云建立三维栅格地图
  • Python(数据结构2)
  • 深入解析HTTP与HTTPS的区别及实现原理
  • Java IO 模型
  • 安装双系统后ubuntu无法联网(没有wifi标识)网卡驱动为RTL8852BE
  • Sqoop的安装配置及使用
  • R语言机器学习算法实战系列(十三)随机森林生存分析构建预后模型 (Random Survival Forest)
  • 三款计算服务器配置→如何选择科学计算服务器?
  • Oracle 19c RAC删除多余的PDB的方式
  • 什么是云渲染?云渲染有什么用?一篇看懂云渲染意思
  • MATLAB中 exist函数用法