#include <algorithm> class Solution { /* 中位数是排好序之后,中间的那个数 */ public: vector<int> v; void Insert(int num) { if(v.empty()){ v.push_back(num); }else{ auto it = lower_bound(v.begin(), v.end(), num); //二分法,找到第一个大于等于的数;up_bound()找到第十个大于的数 v.insert(it, num); } } double GetMedian() { int sz = v.size(); if(sz%2 == 1){ //jishu return static_cast<double>( v[sz/2] ); }else{ //even return static_cast<double>( ( v[sz/2-1] + v[sz/2] ) )/2; //整数除2会向下取整,浮点数保留小数 } } };