算法
javapua
这个作者很懒,什么都没留下…
展开
-
Day 9 | 字符串进阶
Leetcode 28思路:1、朴素解法(首先入眼的)2、KMP算法3、Pythonic 法(find)Pythonic 方法Leetcode 459看到题目的时候一点想法都没有看到了一个秀的发麻的解法:原创 2024-03-13 21:06:43 · 153 阅读 · 0 评论 -
算法 | Day2 数组进阶
有人会问题目中不是已知了是一个非递减的数列为什么还要排序,我们可以先讲所有的元素全部转化为正数在排列,最后就直接平方就可以了。然后我们看比较高大上的双指针方法,核心思想是在旧数组进行两头筛选判断,在讲结果进行平方操作输入新数组中,代码如下。在取正数这一步,我进行了一个小简化,判断大于等于 0 的时候就退出循环,个人认为也是一个不错的方法。这里考虑过了很多方法,最后还是推荐滑动窗口法,因为题目要求是,连续的数组。本人认为双指针解法和我所说的先排列后计算思路差不多。思路一:先计算后排列。思路二:先排列后计算。原创 2024-03-07 20:39:09 · 188 阅读 · 0 评论 -
算法 | Day 1 数组
mid = int (-0.5) = 0 此时 nums[mid] 会报错,数组上标或下标越界,Out of range。如果len(nums) == 0 即我们输入的是一个空数组,那么此时 left = 0 right = -1。显然是不行的,如果输入的数组是单元素数组 [1],此时 left = 0 = right。快慢指针法,可以抽象理解成,A是输入数组,B是输出数组,A和B是同一个数组。1、是否需要判断 len(nums) == 0。2、mid 是否需要是整数。二分法从中间开始查找。原创 2024-03-06 09:41:14 · 686 阅读 · 1 评论