Description

Submission
class Solution {
public:
int minMoves2(vector<int>& nums) {
sort(nums.begin(), nums.end());
int n = nums.size();
long long ret = 0;
for(int x: nums) {
ret += (x - nums[0]);
}
for(int i = 1; i < n; ++i) {
ret = min(ret, ret + (nums[i] - nums[i-1]) * (2 * i - n));
}
return ret;
}
};
// 1 2 9 10
// 1 + 8 + 9
// (nums[i] - nums[i-1]) * (i + 1 - (n - i + 1))
// (2 * i - n)
class Solution {
public:
int minMoves2(vector<int>& nums) {
sort(nums.begin(), nums.end());
int n = nums.size();
long long ret = 0;
for(int x: nums) {
ret += (x - nums[0]);
}
for(int i = 1; i < n; ++i) {
ret = min(ret, ret + (nums[i] - nums[i-1]) * (2 * i - n));
}
return ret;
}
};
// 1 2 9 10
// 1 + 8 + 9
// (nums[i] - nums[i-1]) * (i + 1 - (n - i + 1))
// (2 * i - n)
class Solution { public: int minMoves2(vector<int>& nums) { sort(nums.begin(), nums.end()); int n = nums.size(); long long ret = 0; for(int x: nums) { ret += (x - nums[0]); } for(int i = 1; i < n; ++i) { ret = min(ret, ret + (nums[i] - nums[i-1]) * (2 * i - n)); } return ret; } }; // 1 2 9 10 // 1 + 8 + 9 // (nums[i] - nums[i-1]) * (i + 1 - (n - i + 1)) // (2 * i - n)