自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(114)
  • 收藏
  • 关注

原创 C++作业1

1.总结const 与指针的关系如果const位于*的左侧,则const就是用来修饰指针指向的变量,即指针指向为常量;int a=500;int const *p=&a;const int * p=&a;*p=600;//err改变*p的方法:改变a的值a=600使p指向别处p=&b;如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量,必须进行初始化int a=500;int* const p;//err,必须初始化i

2022-01-09 14:10:33 863

原创 Linux 系统调用 文件描述符

目录系统调用main.c 先open再forkmain.c 先fork再openmain.c 打印fd的值第一种情况第二种情况用户空间、内核空间系统调用和库函数的区别替换进程test.cexeclexeclpexecleexecvexecvpexecve系统调用PCB进程控制块进程描述符==struct task_structfork是写时拷贝技术,提高了效率open read write close 操作文件的系统调用 实现在内核中fopen fread

2022-01-03 16:31:45 1216 2

原创 力扣刷题总结c++ 解题报告(持续更新中)

写这篇的初衷是整理复习一遍自己刷过的题目录1. 两数之和2. 两数相加3. 无重复字符的最长子串5. 最长回文子串6. Z 字形变换7. 整数反转8. 字符串转换整数 (atoi)9. 回文数11. 盛最多水的容器12. 整数转罗马数字13. 罗马数字转整数14. 最长公共前缀15. 三数之和16. 最接近的三数之和19. 删除链表的倒数第 N 个结点20.有效的括号21. 合并两个有序链表23. 合并K个升序链表还有分治、优先队列的解法,之后再来填坑吧29. 两数相除33. 搜索旋转排序数组50. Po

2021-12-26 18:51:30 3273

原创 Linux 僵死进程 文件操作

目录复制进程:fork()习题一:习题二习题三习题四僵死进程test.c解决方法wait法一法二文件描述符文件操作openreadwritecloseopen.c写一个复制图片复制进程:fork()写时拷贝:提高了fork复制的效率习题一:int main(){ for(int i=0;i<2;i++) { fork(); printf("A\n"); }}打印6个A父进程 i=0 fork A; i=1 fork

2021-12-24 15:09:49 1511

原创 【解题报告】《九日集训》(第九天)

语言:C++目录172. 阶乘后的零1342. 将数字变成 0 的操作次数222. 完全二叉树的节点个数LCP 44. 开幕式焰火可dfs397. 整数替换938. 二叉搜索树的范围和剑指 Offer 55 - I. 二叉树的深度104. 二叉树的最大深度226. 翻转二叉树172. 阶乘后的零172. 阶乘后的零给定一个整数 n ,返回 n! 结果中尾随零的数量。提示 n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1示例 1:输入:n = 3输出:0

2021-12-19 20:34:28 852

原创 【解题报告】《九日集训》(第八天)

语言:C++图书馆闭馆了,那个中等题还没做出来文章目录832. 翻转图像867. 转置矩阵566. 重塑矩阵2022. 将一维数组转变成二维数组1260. 二维网格迁移661. 图片平滑器[1314. 矩阵区域和](https://leetcode-cn.com/problems/matrix-block-sum/)1030. 距离顺序排列矩阵单元格832. 翻转图像832. 翻转图像给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,

2021-12-18 13:35:07 323

原创 【解题报告】《九日集训》(第七天)

语言:C++目录1351. 统计有序矩阵中的负数1572. 矩阵对角线元素的和1672. 最富有客户的资产总量766. 托普利茨矩阵1380. 矩阵中的幸运数1582. 二进制矩阵中的特殊位置463. 岛屿的周长1351. 统计有序矩阵中的负数1351. 统计有序矩阵中的负数给你一个 m * n 的矩阵 grid,矩阵中的元素无论是按行还是按列,都以非递增顺序排列。请你统计并返回 grid 中 负数 的数目。示例 1:输入:grid = [[4,3,2,-1],[3,2,1,-1],[1,1,

2021-12-16 16:52:27 509

原创 【解题报告】《九日集训》(第六天)

语言:C++目录1913. 两个数对之间的最大乘积差976. 三角形的最大周长561. 数组拆分 I881. 救生艇324. 摆动排序 II455. 分发饼干1827. 最少操作使数组递增945. 使数组唯一的最小增量611. 有效三角形的个数1913. 两个数对之间的最大乘积差1913. 两个数对之间的最大乘积差两个数对 (a, b) 和 (c, d) 之间的 乘积差 定义为 (a * b) - (c * d) 。例如,(5, 6) 和 (2, 7) 之间的乘积差是 (5 * 6) - (2

2021-12-15 17:08:06 1574

原创 【解题报告】《九日集训》(第五天)

语言:C++目录912. 排序数组169. 多数元素217. 存在重复元素164. 最大间距905. 按奇偶排序数组539. 最小时间差976. 三角形的最大周长881. 救生艇912. 排序数组912. 排序数组给你一个整数数组 nums,请你将该数组升序排列。示例 1:输入:nums = [5,2,3,1]输出:[1,2,3,5]调用库函数不过显然:被划分为中等题的目的是为了让自己实现排序class Solution{public: vector<int>

2021-12-14 21:39:28 471

原创 【解题报告】《九日集训》(第四天)

语言:C++全是水题的一天目录1470. 重新排列数组1929. 数组串联1920. 基于排列构建数组1480. 一维数组的动态和剑指 Offer 58 - II. 左旋转字符串1108. IP 地址无效化剑指 Offer 05. 替换空格1365. 有多少小于当前数字的数字剑指 Offer 17. 打印从1到最大的n位数1389. 按既定顺序创建目标数组1470. 重新排列数组1470. 重新排列数组给你一个数组 nums ,数组中有 2n 个元素,按 [x1,x2,...,xn,y1,y2,.

2021-12-13 17:55:43 223

原创 【解题报告】《九日集训》(第三天)

语言:C++目录)33. 搜索旋转排序数组81. 搜索旋转排序数组 II153. 寻找旋转排序数组中的最小值二分搜索70. 爬楼梯509. 斐波那契数1137. 第 N 个泰波那契数2006. 差的绝对值为 K 的数对数目LCP 01. 猜数字LCP 06. 拿硬币33. 搜索旋转排序数组33. 搜索旋转排序数组整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变

2021-12-12 18:19:52 486 2

原创 【解题报告】《九日集训》(第二天)

语言:C++今天一直在外边,晚上洗漱完补的题解目录剑指 Offer 64. 求1+2+…+n231. 2 的幂326. 3 的幂342. 4的幂1492. n 的第 k 个因子367. 有效的完全平方数剑指 Offer 64. 求1+2+…+n剑指 Offer 64. 求1+2+…+n求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6写了一个递归递归注意事项:要

2021-12-11 23:59:12 178

原创 【解题报告】《九日集训》(第一天)

​语言:C++很难自己想出中等题题解,两数相除还有点问题,过后补目录两整数之和面试题 17.01. 不用加号的加法剑指 Offer 65. 不用加减乘除做加法面试题 08.05. 递归乘法两数相除Pow(x, n)]Sqrt(x)]面试题 16.07. 最大数值两整数之和两整数之和给你两个整数 a 和 b ,不使用 运算符 + 和 - ,计算并返回两整数之和。示例 1:输入:a = 1, b = 2 输出:3循环之前:c=a ^ b 用c记录a与b

2021-12-10 21:48:14 390

原创 Linux 计算机基础概论

复习上节main.c#include<stdio.h>#include<math.h>int main(){ double d=4.0; double r=sqrt(d); printf("r=%.2f\n",r); return 0;}用到了sqrt函数(-l库名)gcc -o main main.c -lmldd main查看用到的库,man sqrt查看sqrtldd mainman sqrttest.c#i

2021-12-09 14:33:17 854

原创 Linux 库文件的生成和使用

目录库文件生成与使用1、库文件:2、静态库的生成与使用静态库的生成静态库的使用3、共享库的生成与使用共享库的生成共享库的使用5、静态库和共享库的区别库文件生成与使用1、库文件:存放的是预先编译好的方法的集合Linux系统存储的库的位置一般在:/lib 和 /usr/lib库有两种,一种是静态库( libxxx.a ),一种是共享库( libxxx.so )eg.2、静态库的生成与使用静态库的生成以下是需要生成静态库的”.c”文件,其中“foo.h”中是函数的声明,“add.c”和“m

2021-12-08 16:13:49 736

原创 Linux 编译与调试

目录编译与调试1、gcc 分步编译链接2、编译链接过程预编译阶段编译阶段汇编阶段链接阶段3、小结4、makefile 和 make5、gdb 调试单进程、单线程基础调试命令多进程调试命令多线程调试命令编译与调试二进制指令 汇编助记符 高级语言 c c++ java python go php0101 add printf(“hello);0110 mo

2021-12-07 12:25:48 671

原创 Linux 基本命令

常用命令最最常用命令cd切换目录pwd显示当前位置ls 当前目录下有那些文件man帮助手册,用来查看命令1、系统调用2,库函数3等帮助信息touch创建普通文件mkdir创建目录文件cp拷贝 cp file.txt b.txt 把file拷贝至bcp 路径+源文件名 目的路径+目标文件名cp -r 拷贝目录文件加上-rmv移动文件,重命名rm 删除 (路径)文件名rm -r 删除目录文件mv 移动文件,重命名find在目录树中搜索指定的文件cat 查看文件内容, 合并文

2021-12-07 11:56:40 758

原创 Linux:基础知识

本专栏为Linux学习笔记专栏,其中内容均是我在学习过程中的笔记,如果发现错误,请及时联系我记录的比较详细,也算是一个学习路线目录基础知识系统目录介绍1、**目录结构**2、**常见目录说明**3、绝对路径与相对路径4、家目录的概念**文件类型与文件权限**1、**文件类型**2、**权限**3、文件权限4、修改权限Chmod**文字设定法****数字设定法**基础知识系统目录介绍1、目录结构/根目录(文件夹)Linux 系统的目录结构是一颗倒状树。[外链图片转存失败,源站可能有防盗链机制,

2021-12-06 18:14:20 476

转载 【转载】阿秀的求职笔记:基础语法篇

本专栏内容均为复习笔试面试阶段学习的文章,部分加上了自己的注释,文章注明转载!!为了自己更好理解+查看方便重要的事情说三遍欢迎大家去 阿秀的求职笔记 学习!欢迎大家去 阿秀的求职笔记 学习!欢迎大家去 阿秀的求职笔记 学习!...

2021-11-29 15:26:22 4036

原创 数据结构(C语言)八大排序

排序1.算法描述2.代码实现3.效率分析(时间复杂度,空间复杂度,稳定性)稳定性:针对关键字相同的数据(相同的数字),排序前如果A在A’的前面,排完序后还能保证A在A’的前面,则算法稳定,否则不稳定通俗的来讲就是不跳跃的交换数据就是稳定的目录1.插入排序2.希尔排序3.冒泡排序4.快速排序递归写法非递归写法5.选择排序6.堆排序7.归并排序8.基数排序/桶排序第"9"个排序:链表排序测试1.插入排序也叫简单插入排序或者直接插入排序算法描述:从当前位置开始,从后往前找比当前数字小的,插入到这

2021-11-26 20:10:42 907

原创 力扣刷题总结c++ 解题报告(持续更新中)

写这篇的初衷是整理复习一遍自己刷过的题,加深印象有错误或意见欢迎评论区留言~目录1. 两数之和2. 两数相加3. 无重复字符的最长子串5. 最长回文子串6. Z 字形变换7. 整数反转8. 字符串转换整数 (atoi)70. 爬楼梯300. 最长递增子序列1. 两数之和1. 两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不

2021-11-23 21:05:59 1541

转载 习题:递增的三元子序列(C++)

题目给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列。如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] < nums[j] < nums[k] ,返回 true ;否则,返回 false 。示例 1:输入:nums = [1,2,3,4,5]输出:true解释:任何 i < j < k 的三元组都满足题意示例 2:输入:nums = [5,4,3,2,1]输出:false解释:

2021-11-14 19:52:05 163

原创 数据结构(C语言)约瑟夫环

本文采用循环单链表写约瑟夫环,点击可直接链接到之前发的"clist.h"头文件#include<stdio.h>#include<assert.h>#include<stdlib.h>#include"clist.h"约瑟夫环函数int JosephRing(CList plist){ assert(plist != NULL); if (plist == NULL || plist->next == plist) { retur

2021-11-13 14:00:12 1001

原创 数据结构(C语言)BF+KMP 代码

//a b c a b c d a b c d a b c d e a b c//-1 0 0 0 1 2 3 0 1 2 3 0 1 2 3 0 0 1 2 //a b a c d a b c a b c d e//-1 0 0 1 0 0 1 2 0 1 2 0 0 //a

2021-11-10 17:48:50 1038

原创 习题:回文子串、最长回文子串(C++)

题目1:回文子串给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。回文字符串 是正着读和倒过来读一样的字符串。子字符串 是字符串中的由连续字符组成的一个序列。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:输入:s = “abc”输出:3解释:三个回文子串: “a”, “b”, “c”示例 2:输入:s = “aaa”输出:6解释:6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”提示:1

2021-11-08 18:03:47 913

原创 数据结构(C语言)基数排序

基数排序(桶排序) 低位优先#include<stdio.h>#include"lqueue.h"//获取最大值得位数int GetFigur(int* arr, int len){ if (len < 1) return -1; int max = arr[0]; for (int i = 1; i < len; i++) { max = max > arr[i] ? max : arr[i]; } int count = 0; whi

2021-11-07 20:03:17 211

原创 数据结构(C语言)归并排序

#include<stdio.h>#include<stdlib.h>#include<assert.h>/*归并排序:将两段有序的数据合并成一段有序的数据,直到所有的数据有序(二路归并)*///一次归并,gap为归并段的长度static void Merge(int* arr, int len, int gap)//一次归并时间复杂度O(n){ int low1 = 0; int high1 = low1 + gap - 1; int low2

2021-11-07 20:01:53 255

原创 数据结构(C语言)堆排序

#include<stdio.h>//堆调整 O(log n)void HeapAdjust(int* arr, int start, int end){ int tmp=arr[start]; for (int i = 2*start+1; i <= end; i=2*i+1) { if (i < end && arr[i] < arr[i + 1])//有右孩子,并且左孩子的值小于右孩子 { i ++ ; }//i一定是左右孩子

2021-11-07 20:01:29 415

原创 数据结构(C语言)选择排序

#include<stdio.h>/*选择排序:每次都从待排序中找到最小值和待排序的第一个交换*/void SelectSort(int* arr, int len)//时间O(n^2)空间O(1),不稳定{ int tmp; int minIndex;//最小值下标 for (int i = 0; i < len - 1; i++) { minIndex = i; for (int j = i + 1; j < len; j++) { if(

2021-11-07 20:01:08 157

原创 数据结构(C语言)快速排序

/*快速排序(考试重点)一次划分(考试重点)*/#include<stdio.h>#include<stdlib.h>#include<assert.h>int Partition(int* arr, int low, int high)//一次划分:时间复杂度O(n),空间复杂度O(1){ int tmp = arr[low]; while (low < high) { while (low < high && ar

2021-11-07 20:00:32 183

原创 数据结构(C语言)冒泡排序

#include<stdio.h>void BubbleSort(int* arr, int len){ int tmp; for (int i = 0; i < len-1; i++)//排序len-1次 { for (int j = 0; j < len - i - 1; j++)//小心j+1越界 { if (arr[j] > arr[j + 1]) { tmp = arr[j + 1]; arr[j + 1] = arr[

2021-11-07 19:59:55 298

原创 数据结构(C语言)希尔排序

//希尔排序:直接插入排序越有序越快是希尔排序的一个理论基础//算法描述:间隔式分组,利用直接插入排序,缩小分组再排序,直到缩为一组//不稳定:因为有跳跃式的交换数据//时间复杂度O(n^1.3~n^1.5)#include<stdio.h>//一趟希尔排序void Shell(int *arr,int len,int gap){ int i, j; for (i = gap; i < len; i++)//是i++ { int a = arr[i]; fo

2021-11-07 19:58:53 192

原创 数据结构(C语言)直接插入排序

//从当前位置开始,从后往前找比当前数字小的,插入到这个小的数字的后面//在找的过程中,如果发现一个比当前数字大的,同时将这个数字往后移动//////基本有序:选直接插入#include<stdlib.h>#include<stdio.h>void InsertSort(int* arr, int len){ /*if (len <= 1) return;*/ int i, j; for (i = 1; i < len; i++) { in

2021-11-07 19:57:44 275

原创 习题:每日温度(C++)

题目请根据每日 气温 列表 temperatures ,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用 0 来代替。示例 1:输入: temperatures = [73,74,75,71,69,72,76,73]输出: [1,1,4,2,1,1,0,0]示例 2:输入: temperatures = [30,40,50,60]输出: [1,1,1,0]示例 3:输入: temperatures = [30,60,90]输出: [1,1,0]提示:

2021-11-05 21:03:08 438

原创 sizeof() 和strlen() 碰见字符串

首先,字符串数组初始化的方式只有两种1、逐个字符初始化字符数组:char str[10]={ 'h','e','l','1','o' };注意:如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则其余的元素自动定为’\0’ 。2、用字符串常量来初始化字符数组:char str[]={"hello"};也可以省略花括号char str[]="hello";接下来,就是 sizeof 和 stelen 的区别sizeof("hello")=6;char str

2021-11-05 17:34:56 126

原创 习题:合并区间(C++)

题目以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入:intervals = [[1,4],[4,

2021-11-02 16:27:44 423

原创 习题:5898. 数组中第 K 个独一无二的字符串(C++)

题目独一无二的字符串 指的是在一个数组中只出现过 一次 的字符串。给你一个字符串数组 arr 和一个整数 k ,请你返回 arr 中第 k 个 独一无二的字符串 。如果 少于 k 个独一无二的字符串,那么返回 空字符串 “” 。注意,按照字符串在原数组中的 顺序 找到第 k 个独一无二字符串。示例 1:输入:arr = [“d”,“b”,“c”,“b”,“c”,“a”], k = 2输出:“a”解释:arr 中独一无二字符串包括 “d” 和 “a” 。“d” 首先出现,所以它是第 1 个独

2021-10-31 21:31:30 222

原创 习题:只出现一次的数字1 2 3(C++)

题目1给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/single-number使用异或0与任何数字异或都是这个数字本身相同两个数字异或结果是0class S

2021-10-31 21:05:10 312

转载 习题:132 模式(C++)

在宫水三叶 题解里-????可乐可乐吗QAQ的代码上做了注释,复习用题目给你一个整数数组 nums ,数组中共有 n 个整数。132 模式的子序列 由三个整数 nums[i]、nums[j] 和 nums[k] 组成,并同时满足:i < j < k 和 nums[i] < nums[k] < nums[j] 。如果 nums 中存在 132 模式的子序列 ,返回 true ;否则,返回 false 。示例 1:输入:nums = [1,2,3,4]输出:false解释

2021-10-26 21:12:39 234

原创 习题:下一个更大元素 I II(C++)

题目给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例 1:输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输出: [-1,3,-1]解释:对于 num1 中的数字 4 ,你无法在第二个数组中找到下

2021-10-26 16:09:15 201

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除