国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

leetcode453. Minimum Moves to Equal Array Elements

alogy / 1983人閱讀

摘要:對二者進行計算可以得出。假如并不是每一步都會將最小的值加一,則這個值永遠是最小值,它將永遠無法達到最終的目標值。

題目要求
Given a non-empty integer array of size n, find the minimum number of moves required to make all array elements equal, where a move is incrementing n - 1 elements by 1.

Example:

Input:
[1,2,3]

Output:
3

Explanation:
Only three moves are needed (remember each move increments two elements):

[1,2,3]  =>  [2,3,3]  =>  [3,4,3]  =>  [4,4,4]

從一個長度為n非空整數數組中,找到能夠使得數組中每個元素的值都相等的最少步數,一步是指選擇對數組中的n-1個元素加一。比如將[1,2,3]這個數組達到均等的最小步數要求為3步,過程如下:

[1,2,3]

[2,3,3]

[3,3,4]

[4,4,4]

思路和代碼

假設這個具有n個元素的數組中的最小值為min,這個數組所有元素的和為sum,使其達到均等的最小步數為move,均等的值為target,則可以得到公式sum + (n - 1) * move = target * n。其中,可以推導出target = min + move,即在每一步中都會對初始時最小的元素加一。對二者進行計算可以得出sum - move = min * n

至于為什么target = min + move,其實理由很簡單。假如并不是每一步都會將最小的值加一,則這個值永遠是最小值,它將永遠無法達到最終的目標值。反過來想,這個題目等價于從目標值開始,每一步都會對某個值-1,直到回到初始數組,則每一次都被執行-1得到的結果就是這個數組的最小值。

代碼如下:

    public int minMoves(int[] nums) {
        int min = Integer.MAX_VALUE;
        int sum = 0;
        for(int num : nums) {
            min = Math.min(min, num);
            sum += num;
        }
        
        return sum - min * nums.length;
    }

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75114.html

相關文章

  • leetcode462. Minimum Moves to Equal Array Elements

    摘要:如果是偶數的話,中位數是兩個中間的數之間的任意一個數字。將從最小值逐步向最大值移動。也就是說,如果在和間移動,二者到的距離和是不變的。同理,當到達中位數,并且繼續向右移動時,會發現整體數組的移動距離也隨之增加。 題目要求 Given a non-empty integer array, find the minimum number of moves required to make ...

    MartinDai 評論0 收藏0
  • 前端 | 每天一個 LeetCode

    摘要:在線網站地址我的微信公眾號完整題目列表從年月日起,每天更新一題,順序從易到難,目前已更新個題。這是項目地址歡迎一起交流學習。 這篇文章記錄我練習的 LeetCode 題目,語言 JavaScript。 在線網站:https://cattle.w3fun.com GitHub 地址:https://github.com/swpuLeo/ca...我的微信公眾號: showImg(htt...

    張漢慶 評論0 收藏0
  • LeetCode 攻略 - 2019 年 7 月下半月匯總(100 題攻略)

    摘要:月下半旬攻略道題,目前已攻略題。目前簡單難度攻略已經到題,所以后面會調整自己,在刷算法與數據結構的同時,攻略中等難度的題目。 Create by jsliang on 2019-07-30 16:15:37 Recently revised in 2019-07-30 17:04:20 7 月下半旬攻略 45 道題,目前已攻略 100 題。 一 目錄 不折騰的前端,和咸魚有什么區別...

    tain335 評論0 收藏0
  • leetcode436. Find Right Interval

    摘要:題目要求假設一個二維的整數數組中每一行表示一個區間,每一行的第一個值表示區間的左邊界,第二個值表示區間的右邊界。 題目要求 Given a set of intervals, for each of the interval i, check if there exists an interval j whose start point is bigger than or equal ...

    robin 評論0 收藏0
  • [Leetcode] Sliding Window Maximum 滑動窗口最大值

    摘要:這樣,我們可以保證隊列里的元素是從頭到尾降序的,由于隊列里只有窗口內的數,所以他們其實就是窗口內第一大,第二大,第三大的數。 Sliding Window Maximum Given an array nums, there is a sliding window of size k which is moving from the very left of the array to...

    lvzishen 評論0 收藏0

發表評論

0條評論

alogy

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<