算法
文章平均质量分 80
一些算法的题解和总结博客
KissKernel
不秃就好
展开
-
21天算法打卡系列(6)——冒泡排序和快速排序
## 冒泡排序算法思想,进行n-1趟外循环,也即是第一次将数组的最大值移动到数组尾部,第二次就是第二大,进行n-1次循环是因为每次一个最后进行n-1次之后最后一个元素的位置也就固定了。内循环就是比较两个元素的大小,将大的元素放到小元素的后面,每次循环之后比较的元素就减去一个,因为循环完一次就有一个数组最大值移动到了数组的尾部。这里加入标志位flag,如果某次循环没有数组元素交换,那么这个数组就已经是有序了...原创 2022-08-14 21:54:14 · 390 阅读 · 0 评论 -
21天算法打卡系列(5)——折半插入(c)
死循环的原因就是如果mid处的值就是target,此时满足条件原创 2022-08-14 21:44:51 · 289 阅读 · 0 评论 -
21天算法打卡系列(4)
死循环的原因就是如果mid处的值就是target,此时满足条件原创 2022-08-12 23:03:40 · 216 阅读 · 1 评论 -
21天算法打卡系列(3)
NULL的父节点开始一次向上建堆。使用向下调整算法(时间复杂度是O(N)),建堆完成后,将堆顶的元素与数组最后的元素交换位置,因为大堆堆顶一定是最大的元素,然后将数组长度缩减1,对n-1个数向下调整,(向下调整的前提条件是:左右子树都是大堆),因为交换只改变了堆顶的元素,所以满足条件,直接向下调整即可。解释为什么升序要建大堆,因为如果是建的小堆,每次堆顶都是最小的元素,如果取出堆顶的元素,那么剩下的n-1个元素的再次取第二小的时候,树的结构已经乱了,就需要重新建堆O(N),这样堆排序就没有意义了。...原创 2022-08-07 23:31:51 · 188 阅读 · 0 评论 -
21天算法打卡系列(2)
下面是代码演示:插入排序下面就是直接插入排序的代码。原创 2022-08-06 23:55:18 · 216 阅读 · 0 评论 -
21天学算法系列(1)
首先谈到算法就不得不说到算法的效率,评鉴一个算法的好坏第一方面就是评定这个算法的效率如何,而算法的效率并不是用这个算法一共跑了多少时间来决定的。这时候就需要我们的时间复杂度来衡量算法的时间效率。但是他不是一个准确的数字而是一个估计值,比如(N^2+2N+10)在N很大的时候除了最高次项其他的都可以忽略不计,这类似与数学中的极限思想,只保留对结果影响最大的一项。在早期的计算机中,一般存储空间都是比较小的,所以又引入了算法的另一个效率,那就是空间效率,就是说这个算法在完成这些目标数据处理的过程中使用了多少的。.原创 2022-08-04 22:53:52 · 147 阅读 · 0 评论 -
滑动窗口——leetcode题解
滑动窗口四道题题解,一起来练习滑动窗口吧。原创 2022-07-25 21:04:13 · 167 阅读 · 0 评论 -
leetcode双指针水题题解
双指针四道题的题解和思路解析原创 2022-07-14 10:21:36 · 161 阅读 · 0 评论 -
贪心水题题解
贪心算法题解原创 2022-07-13 23:45:33 · 88 阅读 · 0 评论 -
leetcode_排序题目题解练习
排序的一些小题和题解原创 2022-07-13 08:07:56 · 1652 阅读 · 0 评论 -
字符串水题记
leetcode字符串类习题原创 2022-07-12 17:00:33 · 90 阅读 · 0 评论 -
刷题训练——数组
leetcode每日四题,数组习题,练习题解加思路原创 2022-07-08 19:20:23 · 120 阅读 · 0 评论 -
链表的习题练习和题解
leetcode链表的习题练习附带链接和题解,快来练习吧原创 2022-06-13 23:35:45 · 102 阅读 · 1 评论 -
位运算习题题解
相同为0,不同为1.1734. 解码异或后的排列89. 格雷编码1238. 循环码排列补充(五月)191. 位1的个数461. 汉明距离136. 只出现一次的数字137. 只出现一次的数字 II要注意,有符号1不能左移31位,因为符号位被修改也就是符号位原来那个0,被移出去了,符号位的移入和移出都是未定义的行为,所以会报错。这里如果想要得到1左移31位的那个值就需要换成更大的类型,或者用无符号去掉符号位,下面那个强制转换,两种写法都可以。[外链图片转存失败,源站原创 2022-06-12 17:32:57 · 120 阅读 · 0 评论 -
哈希表的练习题解
442. 数组中重复的数据2068. 检查两个字符串是否几乎相等2283. 判断一个数的数字计数是否等于数位的值884. 两句话中的不常见单词原创 2022-06-07 15:13:11 · 436 阅读 · 0 评论 -
滑动窗口总结题解
1984. 学生分数的最小差值1763. 最长的美好子字符串2269. 找到一个数字的 K 美丽值995. K 连续位的最小翻转次数//遇到问题,日后重刷。原创 2022-06-06 23:03:02 · 211 阅读 · 0 评论 -
双指针练习题解
2000. 反转单词前缀917. 仅仅反转字母475. 供暖器面试题 16.06. 最小差原创 2022-06-05 16:50:48 · 177 阅读 · 0 评论 -
贪心算法思想和题解
1221. 分割平衡字符串1217. 玩筹码1029. 两地调度面试题 10.11. 峰与谷补充:题解1400. 构造 K 个回文字符串原创 2022-06-04 14:42:32 · 241 阅读 · 0 评论 -
排序的思想总结和题解
1464. 数组中两元素的最大乘积1636. 按照频率将数组升序排序1287. 有序数组中出现次数超过25%的元素436. 寻找右区间原创 2022-06-03 22:00:50 · 365 阅读 · 0 评论 -
字符串总结加leetcode题解
常量存储区也叫只读数据区,这是一块比较特殊的存储区,他们里面存放的是常量,是不允许修改的和静态区不同,静态区内的数据是可以修改的。首先要用strlen求出字符串长度(不包括\0)然后循环遍历即可大小写转换字符串数组字符串拷贝字符串比较字符串分割字符串翻转就是用两个指针,从头到尾,从尾到头,遍历然后交换即可。回文字符串今天的题解2278. 字母在字符串中的百分比551. 学生出勤记录 I2255. 统计是给定字符串前缀的字符串数目1071. 字符串的最大公因子...原创 2022-06-03 12:35:09 · 255 阅读 · 0 评论 -
顺序表相关算法及例题题解
枚举数组中的每个元素做出相应判断,也就相当于遍历。1,是求前缀和,如果i == 0则为第一个元素,不需要求前缀和,不然会越界。2,为返回数组开辟空间3,求出左边前l-1个数组元素之和。如果i == 0的时候,就代表求得是整个数组元素之和,直接用最后一个前缀和数组元素-0即可。4,减法求出和,然后放入数组。题目:给定一个长度为n的连续字符串,求出最长的一个连续不重复的子字符串。思路:定义两个指针,i和j,j一开始指向-1,因为字串长度是j-i+1,一开始的子串长度为0.然后让j开始移动,将字符个数原创 2022-06-02 16:21:27 · 531 阅读 · 0 评论 -
二分查找了解一下?(二分训练leetcode附题解)
二分查找不只是简单的二分查找,还有这么多的变形,一起来看看把。原创 2022-05-31 07:57:00 · 196 阅读 · 0 评论