LeetCode:最少移動次數使得數組元素相等||【462】

來源:互聯網
上載者:User

標籤:style   元素   說明   str   span   while   div   arrays   java   

LeetCode:最少移動次數使得數組元素相等||【462】題目描述

給定一個非空整數數組,找到使所有數組元素相等所需的最小移動數,其中每次移動可將選定的一個元素加1或減1。 您可以假設數組的長度最多為10000。

例如:

輸入:[1,2,3]輸出:2說明:只有兩個動作是必要的(記得每一步僅可使其中一個元素加1或減1): [1,2,3]  =>  [2,2,3]  =>  [2,2,2]
題目分析

  一個直觀的理解是這樣的,如果我們只有兩個數位話,那麼我們使得他們變成相等元素的最少步數是多少呢?當然是兩者的差

  我們知道兩者的差就已經夠了,至於把它們變成什麼樣子其實不影響結果。比如1,5,若兩者相等,可以變成5,5、4,4、1,1等等,步數都是4步,即差。

  我們只是將這個邏輯應用程式到排序數組的兩個極端元素中。一旦我們相等(不需要顯式地設定,因為我們只是在計算),我們就拋棄了這兩個外部,向內移動。

Java題解
   public int minMoves2(int[] nums) {        Arrays.sort(nums);        int i=0, j=nums.length-1, count=0;        while(i < j){            count += nums[j]-nums[i];            ++i;            --j;        }        return count;    }

 

LeetCode:最少移動次數使得數組元素相等||【462】

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.