树状数组
树状数组三个函数熟练默写就行
algsup
这个作者很懒,什么都没留下…
展开
-
[树状数组]leetcode1395:统计作战单位数(medium)
题目:题解:思路:树状数组思路参考 AcWing 241. 楼兰图腾 两遍遍历数组来求解。代码如下:const int N = 1e5+10;class Solution {private: int tree[N]; // Greater[x]记录a[i]=x左边有大于a[i]的元素个数,Lower[x]记录a[i]=x左边有小于a[i]的元素个数 int Greater[N],Lower[N]; // 树状数组3个函数默写 // 返回二进原创 2022-05-28 20:14:50 · 134 阅读 · 0 评论 -
[树状数组]leetcode315:计算右侧小于当前元素的个数(hard)
题目:题解:1)从后往前依次取出数字去排序2)使用二分查找找到新的数字排在第几位,就是比几个数字大3)然后将这个数字插入到该位置代码如下:class Solution {public: //思路:由后到前取出数字去排序,利用二分查找到的位置就是该元素右侧比它小的元素的数量,然后再将这个数字插到该位置 vector<int> countSmalle...原创 2019-11-30 15:45:30 · 339 阅读 · 0 评论 -
[树状数组]leetcode面试题 10.10:数字流的秩(medium)
题目:题解:思路:树状数组单点插入,区间查询。每次插入给每个位置 x 上数量+1,然后计算位置 x 上点数总和。代码如下:const int N = 5e4+10;int tree[N];class StreamRank {public: int lowbit(int x){ return x&-x; } StreamRank() { memset(tree,0,sizeof tree); }原创 2022-05-28 15:49:36 · 134 阅读 · 0 评论