【文件属性】:
文件名称:leetcode跳跃-leetcode:leetcode
文件大小:223KB
文件格式:ZIP
更新时间:2021-06-30 19:04:07
系统开源
leetcode
跳跃
字符串处理滑动窗口,定义[i,j)
左闭右开,可以向左右滑动。那么就可将复杂度大大降低,从O(N^3)下降到O(2*N),原因为每个index扫过i和j各一次。时间复杂度O(N),空间复杂度O(N).
优化滑动窗口,就是将一边不是一个一个加,是跳跃者加(容易想起跳跃表),那么就可以将复杂度的常量继续下降.
注意边界的处理.
二分复杂的O(n+m),要求复杂度log,i为数组nums1的分割,分割为nums1[i-1]和nums1[i];j为nums2的分割,分类讨论:
case1:
m+n长度为偶数:
i
+
j
=
m
-
i
+
n
-
j
j
=
(m
+
n)
/
2
-
i
中位数为:(max(A[i-1],B[j-1])
+
min(A[i],B[j]))/2
case2:
m+n长度为奇数,定义左半部分比右半部分多1:
i
+
j
=
m
-
i
+
n
-
j
+
1
j
=
(m
+
n
+
1)
/
2
-
i
中位数为:max(A[i-1],
B[j-1])
回文对称性,枚举中心节点的方式来处理,复杂度O(N^2),空间复杂度O(1)
模拟