
算法学习
谦卑处世
这个作者很懒,什么都没留下…
展开
-
双指针与滑动窗口
双指针构建滑动窗口 滑动窗口原理 滑动窗口: 整个窗口是在目标数组上滑动的,窗口的大小是快指针和慢指针之间的子数组,同过窗口的滑动以及窗口的收缩,在快指针遍历完一次数组后,得到符合条件的子窗口,并记录下来。 注意: 滑动窗口的是一个先扩张,后收缩的过程,每次遍历只有快慢指针中的一个指针中的一个移动。在编程过程中,判断何时开始收缩是关键。 滑动窗口实现 例题: 分析: 在此题中,滑动窗口开始收缩的条件是子数组的总和大于target。 代码实现: int minSubArrayLen(int target,原创 2021-07-04 00:11:33 · 315 阅读 · 0 评论 -
二分法原理及实现
二分法原理及实现 二分法原理 EG:在一个有序的数组中,要想快速的找到目标元素。 可以考虑运用二分法,相比于常规的遍历搜索,二分法的时间复杂度是log(n),其原理非常的简单,首次遍历先把整个数组分成两部分,用left,right,mid三个值来划分,首次比较即可省去一半的遍历数据,1/2,1/4,1/8,…直到找到目标元素。 二分法实现 例题: 代码实现: 二分法实现 // 二分法 int search(vector<int>& nums, int target) {原创 2021-07-02 11:59:52 · 1540 阅读 · 0 评论