假设我们必须实现一个名为MedianClass的类,其中包含以下方法-
add(value) 这会为数据结构添加一个值。
median() 查找数据结构中当前存在的所有数字的中位数。
因此,如果我们加上5、3、8并找到中位数,则输出将为5.0,然后如果我们加上9并找到中位数,则输出将为6.5。
为了解决这个问题,我们将遵循以下步骤-
左右定义优先级队列
定义addNum方法,它将数字作为输入-
如果left为空或num <left的顶部元素,则,
在左侧插入num
除此以外
在右边插入num
如果left的大小<right的大小,那么,
temp:=右侧的顶部元素
从右边删除项目
将温度插入左侧
如果left的大小-right的大小> 1,则,
temp:=左侧的顶部元素
从左侧删除项目
将温度插入右边
定义findMedian()方法,其作用如下-
如果left的大小> right的大小,则返回left的顶部,否则(left的顶部+ right的顶部)/ 2让我们看一下下面的实现以获得更好的理解-
#include <bits/stdc++.h> using namespace std; typedef double lli; class MedianClass { priority_queue <int> left; priority_queue <int, vector <int>, greater<int>> right; public: void addNum(int num) { if(left.empty() || num<left.top()){ left.push(num); }else right.push(num); if(left.size()<right.size()){ lli temp = right.top(); right.pop(); left.push(temp); } if(left.size()−right.size()>1){ lli temp = left.top(); left.pop(); right.push(temp); } } double findMedian() { return left.size()>right.size()?left.top():(left.top()+right.top())*0.5; } }; main(){ MedianClass ob; ob.addNum(5); ob.addNum(3); ob.addNum(8); cout << ob.findMedian() << " "; ob.addNum(9); cout << ob.findMedian() << endl; }
ob.addNum(5); ob.addNum(3); ob.addNum(8); cout << ob.findMedian() << endl; ob.addNum(9); cout << ob.findMedian() << endl;输出结果
5.0 6.5
问题内容: 有了这段代码,我得到了这个答案。为什么我得到负值? 问题答案: 在您的平台上,np.arange返回dtype’int32’的数组: 数组的每个元素都是32位整数。平方导致结果不适合32位。结果被裁剪为32位,并且仍然解释为32位整数,这就是为什么看到负数的原因。 编辑: 在这种情况下,可以通过在平方之前构造dtype’int64’数组来避免整数溢出: 请注意,使用numpy时,发现的
所以,这不是关于如何计算数字中的数字。它是如何计算每一个有多少。说: 多少个0,多少个1等等,我想把它放到树形图中 那我该怎么做呢? 数组将是任意大小的,所以我想我可以循环通过它,对于每个新的int,检查每个数字,如果那么等。但不确定如何增加KV映射中的值。
本文向大家介绍Objective-C语言找出数组中的元素数,包括了Objective-C语言找出数组中的元素数的使用技巧和注意事项,需要的朋友参考一下 示例
求一个未排序数组的中值,我们可以对n个元素做O(nlogn)时间的min-heap,然后我们可以逐个抽取n/2个元素得到中值。但是这种方法需要O(nlogn)时间。 我们能在O(n)时间内通过某种方法做同样的事情吗?如果可以,那么请告诉或建议一些方法。
本文向大家介绍在C ++中计算整数中的偶数和奇数位,包括了在C ++中计算整数中的偶数和奇数位的使用技巧和注意事项,需要的朋友参考一下 给我们一个整数,任务是计算一个数字中的偶数和奇数。另外,我们将继续检查整数中的偶数是否出现偶数次,并且整数中的奇数位是否出现奇数次。 例如 说明-是的,此外,偶数出现偶数次,即2,奇数位出现奇数次,即3 说明-:否,因为偶数出现的次数是奇数,即3,而奇数出现的次数
我正在解决这个问题,其中他们要求第一个1000位斐波那契数的索引,我的第一个想法类似于: 然而,据我所知,没有计算BigInteger的位数的方法。这是真的吗?绕开它的一种方法是使用。ToString()。一个BigInteger的长度方法,但我听说字符串处理很慢。 大整数也有一个。ToByteArray(),我曾想过将BigInteger转换为字节数组,并检查该数组的长度,但我认为这并不能唯一地