![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
记录我的算法学习笔记和打卡笔记,希望对大家有帮助!
2909438315
这个作者很懒,什么都没留下…
展开
-
DAY2二刷-力扣977.有序数组的平方|力扣209.长度最小的子数组|59.螺旋矩阵II
1.动态地申请数组空间:c语言:c++:使用new关键字或者vector2.二维数组的地址空间也是连续的。原创 2023-07-01 21:41:32 · 92 阅读 · 0 评论 -
力扣977.有序数组的平方-DAY2
这题用指针的契合点:数组中所有数都平方后,最大的数肯定是从数组的两端开始寻找。原创 2023-04-06 23:12:21 · 33 阅读 · 1 评论 -
力扣209.长度最小的子数组--DAY2
滑动窗口是一种用于处理数组、字符串和链表的算法思想,它通常适用于需要计算连续、固定长度的元素序列的问题。本题的第一个难点在于对题目的理解,题目要求的是数组中长度最小的但是数组中所有值加起来大于target的子数组。总之,滑动窗口是一种非常有用的处理连续区间类问题的算法思想,可以有效地降低时间复杂度并提高代码的效率。:对于某些列举问题,如全排列、最小覆盖子串等问题,我们可能会使用哈希表形式的滑动窗口来解决。:将给定序列划分成大小固定且不重叠的区间,并对每个区间执行某些操作。:寻找给定数组或字符串中。原创 2023-04-06 23:13:40 · 84 阅读 · 1 评论 -
数组总结--DAY2
移除元素、有序数组的平方都用到了双指针的思想。而这些使用双指针的题目都是可以用暴力的方式解决的——》所以以后如果一个数组题目可以用暴力解决,那么就接下去考虑一下用双指针能不能解决。相信大家有遇到过这种情况: 感觉题目的边界调节超多,一波接着一波的判断,找边界,拆了东墙补西墙,好不容易运行通过了,代码写的十分冗余,毫无章法,其实。双指针法(快慢指针法)在数组和链表的操作中是非常常见的。,其实这也是写程序中的重要原则。,就是单纯的模拟,十分考察大家。模拟类的题目在数组中很常见,原创 2023-04-06 23:32:49 · 25 阅读 · 0 评论 -
59.螺旋矩阵II---DAY2
思想:把一个大问题拆解成相似的小问题——》画螺旋矩阵的本质就是画一个个正方形。最后判断中间需不需要加上一个单独的值(非得要加上单独的只是因为loop=n除以2;就算把loop改成loop=n/2+1后,由于for循环里面都是j < startY + n - offset这种大于和小于的判断条件,而不是大于等于or小于等于,所以把loop改成n/2+1后也没有用)难点:小问题之间的连贯性和转化(也就是解决了外圈矩阵的绘制后,如何把解决外圈的这一套算法放到解决内圈矩阵的绘制中)原创 2023-04-06 23:15:00 · 40 阅读 · 0 评论 -
代码随想录算法训练营12期DAY1
如果选择了左闭右闭,那么书写代码的时候要贯彻始终,while中要写成<=才能代表区间的左闭右闭。又因为右端点是闭合的,所以当middle的值不等于target值的时候,我们下一段区间中不需要出现middle了,所以right就等于middle-1就行。如果选择了左闭右开,那么书写代码的时候也要贯彻始终,while中要写成<才能代表左闭右开的右开!因为右端点是开的,所以等middle的值不等于target时,我们取right=middle,但是实际上这个middle的值不会被包含在新区间内。原创 2023-04-06 09:11:55 · 34 阅读 · 1 评论