
【解题思路】
设置一个动态数组,可以随时插入新的值。对数组进行排序后,可以计算中位数。
class MedianFinder {
ArrayList<Integer> list;
/** initialize your data structure here. */
public MedianFinder() {
list = new ArrayList<Integer>();
}
public void addNum(int num) {
list.add(num);
}
public double findMedian() {
Collections.sort(list);
int len = list.size();
if(len % 2 == 0)
{
return (double)(list.get(len/2 - 1) + list.get(len/2))/2;
}
else
{
return list.get(len/2);
}
}
}
/**
* Your MedianFinder object will be instantiated and called as such:
* MedianFinder obj = new MedianFinder();
* obj.addNum(num);
* double param_2 = obj.findMedian();
*/
Arraylist数组排序
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.sort(list);
int len = list.size();
本文介绍了一种使用动态数组实时维护中位数的方法。通过在动态数组中添加元素并对其进行排序,可以有效地找到当前数组的中位数。适用于需要动态调整的数据集。
&spm=1001.2101.3001.5002&articleId=127232903&d=1&t=3&u=ff4e02f4b6ad4fa48e68ca9e890babd3)
172万+

被折叠的 条评论
为什么被折叠?



