随笔分类 - 刷题笔记
Leetcode Java题解
摘要:题目地址:209. Minimum Size Subarray Sum 解题思路: 看到这道题,心里本身是有双指针这个概念的,但是不知道怎么用,脑子里第一反应就是暴力解法,双for一把梭,然后时间就超时了...看了题解才知道滑动窗口这个解法,不禁直呼妙啊!感觉和双指针非常类似,其核心点在于避免了暴力
阅读全文
摘要:题目地址:[977. Squares of a Sorted Array](https://leetcode.cn/problems/squares-of-a-sorted-array/) 解题思路: 又是一道双指针的题目,看见秒想到双指针(平方直接调用sort方法也行,但是这么写这题就没意思了)。
阅读全文
摘要:题目地址:844. Backspace String Compare 解题思路:这道题按常理来说有两种解法。 1.用栈来实现 2.用双指针法来实现。 此处我仅记录一下我用双指针法的解题过程。首先,肯定是不能创建额外空间的,因为只有O(1)的空间复杂度。当检索到#的时候,即代表着退格,就删除一个元素,
阅读全文
摘要:题目地址:283. Move Zeroes 解题思路:毫无疑问,这道题依然使用双指针法,但是我一开始做还是没什么思路,只考虑到把非0的元素放置到数组左边,在看了一些大佬的题解后,发现这种方法最为巧妙。其根本思想就是参考快速排序的思想,以0为界限,将整个数组划分为两个区域,左边为非0元素,右边为0。i
阅读全文
摘要:题目地址:27. Remove Element 方法一: 解题思路:这个题目第一反应的就是双重循环暴力破解。虽然很不优雅,但是的确是个快狠准的方法。 需要注意的是,由于向前移动元素,并没有“真正”的删除元素,数组长度是不会变化的,所以需要额外申请一个length来记录数组长度。把握好数组长度这个边界
阅读全文
摘要:题目地址:367. Valid Perfect Square 解题思路:有了上一道题69. Sqrt(x)的洗礼,这道题我只能说,没有意思! 除了需要注意1这个特殊值,其他的基本和上一道题目如出一辙,甚至比上一题简单很多,直接二分查找,所以别多说,一把梭。 class Solution { publ
阅读全文
摘要:题目地址:35.Search Insert Position 解题思路:一看到题目的关键字有序,不重复整数,第一时间想到二分查找。 这道题是将二分查找进行了拓展,如果target不存在数组内,还需要进一步判断target的插入位置, target存在数组内的情况就不考虑了,与704. Binary
阅读全文
摘要:题目地址:704. Binary Search 解题思路:一道平平无奇的简单题,需要注意定是,跳出循环的边界条件是什么,不要错写成low==high。 看了一下大佬们的题解,发现虽然是一道“平平无奇”简单题,但是还是有一些讲究的。 比如我上面直接将low==high定义为错误条件,是不严谨的。 实际
阅读全文