
树状数组
树状数组三个函数熟练默写就行
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 · 156 阅读 · 0 评论 -
[树状数组]leetcode315:计算右侧小于当前元素的个数(hard)
题目: 题解: 1)从后往前依次取出数字去排序 2)使用二分查找找到新的数字排在第几位,就是比几个数字大 3)然后将这个数字插入到该位置 代码如下: class Solution { public: //思路:由后到前取出数字去排序,利用二分查找到的位置就是该元素右侧比它小的元素的数量,然后再将这个数字插到该位置 vector<int> countSmalle...原创 2019-11-30 15:45:30 · 359 阅读 · 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 · 161 阅读 · 0 评论