随笔分类 - 算法刷题
力扣第209题(双指针)
摘要:209. 长度最小的子数组 - 力扣(LeetCode) 我的思路: 固定起始位置,移动终止位置,将起始位置和终止位置之间的元素进行加和。直到满足条件就停止移动终止位置。这个时候将起始位置向前移动一个距离,然后将终止位置重新移回更新后的起始位置上。这样做的问题是会带来重复的操作。 比如一个数组中的元
阅读全文
力扣977题(双指针)
摘要:977. 有序数组的平方 - 力扣(LeetCode) 所用算法:双指针 观察题目的规律,平方之后该数组两边的数大,中间的数小,因此想到双指针,一个指针指向数组的开头,一个指针指向数组的结尾。 如果你觉得在原数组上操作会将未遍历的元素覆盖掉,那么一定要开辟一个新的数组,将原数组的值赋给新的数组。 (
阅读全文
力扣第27题(双指针)
摘要:27. 移除元素 - 力扣(LeetCode) 所用算法:双指针(用于改变数组中成员的操作)算法说明:一般对数组进行更新会使用双指针的算法,一个是快指针,一个是慢指针。一般快指针是用来在原数组中获取新数组中的元素,慢指针是用来获取新数组需要更新的位置(相当于另外一个数组)。 1 int remove
阅读全文
力扣第704题(一维)剑桥Offer第4题(二维)(二分法)
摘要:所用算法:二分搜索 一维: 704. 二分查找 - 力扣(LeetCode) 算法说明:二分搜索从有序序列中寻找某个给定的值 算法思想:二分法首先从中心位置开始搜索,如果中心位置的元素正好是要找的元素,搜索完成;如果不是,假如中心位置的元素小于要找的元素,则从序列的后半部分找,如果中心位置的元素大于
阅读全文