相向双指针

xxxxxmy20 天前
python·相向双指针
相向双指针—接雨水我们可以举例子思考:如果有两条线,高度分别是7和8,宽度是5,那么容纳的水的容量就是7乘以5=35,易知高度是由较短的那条线决定的。此时如果我们保持高度为7的线不变,将宽度变小,试图找到容纳更多的水的两条线,那么不管新找到的线的高度比7大还是小,面积都不会比之前的7和8组成的容器能容纳的水量更大,因为如果线比7高,面积仍然由高度为7的线决定,如果线比7低,面积就会更小,因此此时我们就需要舍弃7那条线,以高度为8的那条线为容器的边来考虑新的可能,(这样8更小的宽度才有可能大于75),之后会继续比较8和新的线
xxxxxmy21 天前
python·算法·相向双指针
相向双指针—三数之和如果我们使用暴力解法,即嵌套两个 for 循环从而寻找相加之和为目标的两个数,那么这个实现的时间复杂度是 O( n 2 n^2 n2),显然是需要优化的。 根据题目描述,我们可以看到还有个条件没有利用到,即 “该数组已按非递减顺序排列” ,那么我们尝试利用有序数组对算法进行优化。 假设输入的数组是[2, 7, 11, 15],target = 9,如果我们知道 2+11 > 9,那么根据数组是非递减顺序的性质可知,2之后的数字加上11肯定更加大于目标值,那么此时就需要使得11更小,既然知道这个规律,我们就
我是有底线的