【解题思路】
设置一个动态数组,可以随时插入新的值。对数组进行排序后,可以计算中位数。
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();