区间和
1.递推-维护动态规划表 | 一维复杂度O(n) , 二维O(mn)
一维区间连续和:d[i]含义-区间[1,i]前缀和,递推公式 d[i] = d[i-1] + A[i] , 递推条件d[0] = 0
二维矩形区域和:d[i][j]含义-矩形( [1,i] , [1,j] ) 前缀矩形区域和
递推公式d[i][j] = d[i][j-1] + d[i-1][j] + A[i][j] - d[i-1] [j-1] ,递推条件memset(d,0,sizeof(0) )
2.线段树-维护一个二叉检索树 | 建树O(n),更新节点和查询区间和O(logn)
3.树状数组-维护一个树状数组 | 建结构O(n) , 更新节点和查询区间和(logn)
树状数组类似于线段树,但是编码更简洁,速度更快;能够用树状数组解决的都能用线段树解决,反之不行
区间最值 | 区间 k大
1.快排 | nlogn复杂度求区间第k大,不适合多次查询问题
2.线段树-二叉检索树 | logn
3.划分树-基于线段树的区间k大 | logn
区间和 | 区间最值-区间k大
最新推荐文章于 2022-06-13 11:02:27 发布