
树状数组
一粒大榴莲
这个作者很懒,什么都没留下…
展开
-
力扣 315. 计算右侧小于当前元素的个数(树状数组+离散化)
用map记录以及离散化都是为了应对出现负数的情况,更新树状数组的时候因为是严格小于,所以更新的时候得加1。class Solution { int len;vector<int> arr;public: void update(int n,int k){ for(int i = n;i <= len;i += (i)&(-i)) arr[i] += k; } int getnum(int n){ .原创 2020-07-11 20:10:41 · 348 阅读 · 0 评论 -
PTA团体程序设计天梯赛-练习集 L3-002 特殊堆栈(树状数组)
大家都知道“堆栈”是一种“先进后出”的线性结构,基本操作有“入栈”(将新元素插入栈顶)和“出栈”(将栈顶元素的值返回并从堆栈中将其删除)。现请你实现一种特殊的堆栈,它多了一种操作叫“查中值”,即返回堆栈中所有元素的中值。对于N个元素,若N是偶数,则中值定义为第N/2个最小元;若N是奇数,则中值定义为第(N+1)/2个最小元。输入格式:输入第一行给出正整数N(<= 105)。随后N行,每行给出一个操作指令,为下列3种指令之一:Push keyPopPeekMedian其中Push表示入栈,k转载 2020-06-29 23:42:23 · 402 阅读 · 0 评论