中位数

来源:互联网 发布:淘宝怎么用支付宝 编辑:程序博客网 时间:2024/06/02 18:53

问题描述:

给定一个未排序的整数数组,找到其中位数。

中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N/2个数。

实现思路:

现将数组进行排序,如果数组的元素个数是偶数个那么返回地N/2个元素,该元素的下标为N/2-1;否则,返回元素的下标为N/2;

代码:

class Solution {

public:
    /**
     * @param nums: A list of integers.
     * @return: An integer denotes the middle number of the array.
     */
    int median(vector<int> &nums) {
        // write your code here
          sort(nums.begin(),nums.end());
          int a=nums.size();
          if(a%2==0) 
          { int k=a/2-1;
          return nums[k];
          }
          else {
             int k=a/2; 
            return nums[k];  
          }
              }

};

感想:

vector 的下标从零开始。