文章目录
- 1. 题目
- 2. 解题
1. 题目
描述
给定一个长度为N的整数数组arr
返回一个长度为N的整数答案数组ans
ans[i] 表示删除arr数组第i个数后,arr数组的中位数
N为偶数 2 <= N <= 10^5
示例
输入:[1,2,3,4,5,6]
输出:[4,4,4,3,3,3]
解释:删去1后 剩下的数组为[2,3,4,5,6]中位数为4
删去4后,剩下的数组为[1,2,3,5,6]中位数为3
来源:https://tianchi.aliyun.com/oj/141742855745988779/153294680351772732
2. 解题
class Solution {
public:/*** @param arr: an integer array* @return: return the median array when delete a number*/vector<int> getMedian(vector<int> &arr) {// write your code herevector<int> t = arr;sort(t.begin(), t.end());//排序int n = arr.size()/2;//中间的数vector<int> ans(arr.size());for(int i = 0; i < arr.size(); ++i){if(arr[i] >= t[n])//如果原数组的数大于等于 中间的数ans[i] = t[n-1];//中位数为排序后的 中间数的前一个elseans[i] = t[n];}return ans;}
};
201ms C++
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!