方法一:找规律直接输出
int minMoves(int* nums, int numsSize) {
int i,sum,tempmin;
sum=tempmin= nums[0];//记住一定要拿到外面,否则循环一次付一次nums[0],sum也要拿到外面,要不然少一个nums[0]
for (i = 1; i < numsSize; i++)
{
if (nums[i] < tempmin)
tempmin = nums[i];
sum += nums[i];
}
printf("%d", tempmin);
return (sum - tempmin*numsSize );
}
方法二:也是一个规律
public class Solution {
public int minMoves(int[] nums) {
Arrays.sort(nums);
int count = 0;
for (int i = nums.length - 1; i > 0; i--) {
count += nums[i] - nums[0];//每个数减去最小的数的差的和就是变化的次数
}
return count;
}
}