Minimum Moves to Equal Array Elements

方法一:找規律直接輸出

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;
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章