1. 程式人生 > >經典演算法 | 給定數軸上點,尋找一個點到其他點的距離之和最小

經典演算法 | 給定數軸上點,尋找一個點到其他點的距離之和最小

 給你一個數軸上的許多個點,讓你尋找一個點A,使得A到其他所有數軸上的點的距離之和最短

 毫無疑問,當數軸上的點的數量是偶數的時候,A取在數軸上所有點按照其座標排列,排在最中間的兩個點中間,

 當數軸上的點的數量是奇數的時候,A取這些所有點按照其座標排列,排在最中間的點

當取好A之後求所有點到其距離之和即可 

 程式碼如下

class Solution {
public:
  int minMoves2(vector<int>& nums) {
	sort(nums.begin(), nums.end());
	int result=0;
	for (int i = 0; i < nums.size() / 2; i++)
	{
		result += (nums[nums.size() - 1 - i] - nums[i]);
	}
	return result;
}
};