算法入门
文章平均质量分 55
kull1
现实是什么?世界是什么?
展开
-
《LeetCode零基础指南》(第九讲) 简单递归
递归递归概念:递归就是自己调用自己。 递归只要记住三点内容: 1)你要实现一个函数,这个函数会自己调用自己,并且每次调用,函数传参是不一样的; 2)递归一定要有出口,即满足一定条件后需要return,否则就可能出现死递归(引起栈溢出); 3)根据递推式来补充你的递归调用内容递归调用阶乘:有三个方法1)实现一个函数:这个函数叫JieCheng,它的参数是一个整数,返回值也是一个整数,实现如下:int JieCheng(int n) {}2)递归出口: 当 .原创 2022-03-10 17:19:29 · 1179 阅读 · 0 评论 -
《LeetCode零基础指南》(第八讲) 二级指针
二级指针二级指针概念:指针就是一种变量,也可以占用存储空间,可以使用&获取地址。如果一个指针指向另一个指针,我们称他为二级指针。还有其他的三级,四级指针。int x = 1;int *p1 = &x;int **p2 = &p1;指针的解引用:在一级引用时使用 * 进行解引用,一次指针经过一次解引用,变为普通变量。二级指针经过一次解引用,变为一级指针。力扣的当中的问题:int** func(int** matrix, int matrixSize, int*原创 2022-03-09 23:03:34 · 7607 阅读 · 0 评论 -
《LeetCode零基础指南》(第七讲) 二维数组
矩阵的概念矩阵的定义:在C语言中,我们可以用A[n][m]来代表一个 n × m的矩阵,其中A[ i ] [ j ]代表矩阵的第 i 行,第 j 列的值。矩阵的其他用法:水平翻转,垂直翻转,顺时针旋转,逆时针旋转,矩阵的转置。二维数组:C语言中,二维数组可以用来描述矩阵,本质上,你可以把二维数组理解成一个一维数组。只不过一维数组的每一个元素,也是一个一维数组。二维数组的传参:二维数组的传参是用的就是两个*了,如下:int diagonalSum(int** mat, int mat原创 2022-03-10 12:04:08 · 1652 阅读 · 0 评论 -
《LeetCode零基础指南》(第六讲) 贪心
贪心所谓贪心,总是做出在当前看来是最好的选择。也就是说,不从整体最优上进行考虑,算法得到的是在某种意义上的局部最优解。比如,对于一个全是正整数的数组,我要找到其中两个数,使得它们的乘积最大,毫无疑问,一定是取最大和次大的两个数进行相乘,得到的结果最大。这个就是贪心思想练习l1913. 两个数对之间的最大乘积差976. 三角形的最大周长561. 数组拆分 I881. 救生艇摆动排序Ⅱ455.分发饼干182...原创 2022-03-07 22:21:47 · 648 阅读 · 0 评论 -
《LeetCode零基础指南》(第五讲) 排序API
排序排序简述:时间效率较低的排序,如:冒泡排序、选择排序、插入排序;以及实现相对较复杂,但是效率较高的排序,如 归并排序、快速排序、希尔排序 等等;还有一些非比较排序,如 基数排序、计数排序、桶排序。今天的内容,我们不需要了解任何排序的算法原理,就能把所有关于排序的题给做了。用到的就是 C语言 提供的排序 API ——qsort。qsort:排序 API 的作用就是传入一个数组,并且对数组按照给定的规则进行就地排序。void qsort(void *base, size_t nitems, .原创 2022-03-06 23:34:53 · 412 阅读 · 0 评论 -
《LeetCode零基础指南》(第四讲) 指针
指针知识点指针及地址:计算机中所有的数据都必须放置在内存中,不同类型的数据占用的字节数也不一样,例如 32位整型int占据 4 个字节,64位整型long long占据 8 个字节,字符型char占据 1 个字节。指针的定义:定义指针变量:定义指针变量和普通变量类似,只不过在变量名前面加上一个星号*即可。取地址:假设x是一个字符型变量,p是x的地址。而实际写代码的时候,我们通过&来表示取地址符号。数组的地址:对于数组而言,其中的元素的地址都是连续的,数组第一个元素的...原创 2022-03-05 23:36:00 · 500 阅读 · 0 评论 -
《LeetCode零基础指南》(第三讲) 一维数组
一维数组顺序存储:顺序存储结构,是指用一段地址连续的存储单元来依次存储数据。存储方式:在编程语言中,用一维数组来实现顺序存储结构,在C语言中,把第一个数据元素存储到下标为 0 的位置中,把第 2 个数据元素存储到下标为 1 的位置中,以此类推。长度和容量:数组的长度指的是数组当前有多少个元素,数组的容量指的是数组最大能够存放多少个元素。如果数组元素大于最大能存储的范围,在程序上是不允许的,可能会产生意想不到的问题,实现上是需要规避的。数组的索引:数组中的元素索引,我们可以采用[]运算符来完成原创 2022-03-05 22:21:39 · 647 阅读 · 0 评论 -
《LeetCode零基础指南》(第二讲) 循环
记录从小白晋级的过程,方便自己复习学过的知识for循环剑指offer 64 求1+2+3+……+n231. 2的幂定义一个无符号整型k kk; 如果n ≤ 0 n \le 0n≤0,则必然不是 2 的幂; 1 必然是 2 的 0 次幂; 枚举所有 2 的幂2 22、4 44、8 88、… 、2 31 2^{31}231; 一旦找到一个和n nn相等,返回true,则说明它是 2 的幂; 最后,没有找到的话,返回false表示不是2 ...原创 2022-03-03 22:12:09 · 461 阅读 · 0 评论