Super Washing Machines

題目
You have n super washing machines on a line. Initially, each washing machine has some dresses or is empty.

For each move, you could choose any m (1 ≤ m ≤ n) washing machines, and pass one dress of each washing machine to one of its adjacent washing machines at the same time .

Given an integer array representing the number of dresses in each washing machine from left to right on the line, you should find the minimum number of moves to make all the washing machines have the same number of dresses. If it is not possible to do it, return -1.

Example1

Input: [1,0,5]
Output: 3
Explanation: 
1st move:    1     0 <-- 5    =>    1     1     4
2nd move:    1 <-- 1 <-- 4    =>    2     1     3    
3rd move:    2     1 <-- 3    =>    2     2     2   

Example2

Input: [0,3,0]
Output: 2
Explanation: 
1st move:    0 <-- 3     0    =>    1     2     0    
2nd move:    1     2 --> 0    =>    1     1     1     

Example3

Input: [0,2,0]
Output: -1
Explanation: 
It's impossible to make all the three washing machines have the same number of dresses. 

答案

思考的方法
題目說每個move可以同時把很多個洗衣機的一件衣服往左或者往右移動
如果你直接去想怎么移動才能使得所有洗衣機包含同樣數(shù)量的衣服,很難想出一個辦法來

但是如果你假設(shè)題目所給出的移動方法可以使你用最少的步數(shù)達(dá)到平衡(每個洗衣機衣服數(shù)量相等)如筛,然后再去思考在最好的情況下粘秆,用多少步就能達(dá)到平衡,這樣或許會更容易找到答案迁筛。

代碼

class Solution {
    public int findMinMoves(int[] machines) {
        int sum = 0, balance = 0, moves = 0, target = 0, n = machines.length;
        for(int x : machines) sum += x;
        if(sum % n != 0) return -1;
        
        target = sum / machines.length;
        for(int i = 0; i < n; i++) {
            int left = 0;
            if(balance < 0) {
                left = -balance;
                moves = Math.max(moves, left);
            }
            balance += (machines[i] - target);
            if(balance > 0)
                moves = Math.max(moves, balance + left);
        }
        return moves;
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末襟雷,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子狂票,更是在濱河造成了極大的恐慌,老刑警劉巖熙暴,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闺属,死亡現(xiàn)場離奇詭異,居然都是意外死亡周霉,警方通過查閱死者的電腦和手機掂器,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來俱箱,“玉大人国瓮,你說我怎么就攤上這事∧祝” “怎么了乃摹?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長芋簿。 經(jīng)常有香客問我峡懈,道長,這世上最難降的妖魔是什么与斤? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任肪康,我火速辦了婚禮荚恶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘磷支。我一直安慰自己谒撼,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布雾狈。 她就那樣靜靜地躺著廓潜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪善榛。 梳的紋絲不亂的頭發(fā)上辩蛋,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天,我揣著相機與錄音移盆,去河邊找鬼悼院。 笑死,一個胖子當(dāng)著我的面吹牛咒循,可吹牛的內(nèi)容都是我干的据途。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼叙甸,長吁一口氣:“原來是場噩夢啊……” “哼颖医!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起裆蒸,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤熔萧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后光戈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哪痰,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年久妆,在試婚紗的時候發(fā)現(xiàn)自己被綠了晌杰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡筷弦,死狀恐怖肋演,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情烂琴,我是刑警寧澤爹殊,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站奸绷,受9級特大地震影響梗夸,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜号醉,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一反症、第九天 我趴在偏房一處隱蔽的房頂上張望辛块。 院中可真熱鬧,春花似錦铅碍、人聲如沸润绵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽尘盼。三九已至,卻和暖如春烦绳,著一層夾襖步出監(jiān)牢的瞬間卿捎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工爵嗅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留娇澎,地道東北人笨蚁。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓睹晒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親括细。 傳聞我的和親對象是個殘疾皇子伪很,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容

  • **2014真題Directions:Read the following text. Choose the be...
    又是夜半驚坐起閱讀 9,581評論 0 23
  • 彼時 此時 現(xiàn)在人的愛情 平淡無奇
    人格不穩(wěn)定少女閱讀 202評論 0 0
  • 姓名:周黎明 公司:寧波貞觀電器有限公司 組別:寧波盛和塾第 224期努力一組 日精打卡時間:精打卡第192天 ...
    A周黎明閱讀 159評論 0 0
  • 營銷有四個資源,由低向高依次是關(guān)系奋单、產(chǎn)品锉试、風(fēng)險、服務(wù)览濒,最低端的資源是關(guān)系呆盖,其次是產(chǎn)品和風(fēng)險,最后是服務(wù)贷笛。 作者:自...
    吳少杰1988閱讀 251評論 0 0
  • 很久沒更新应又,今天看到有人評論說很希望能更新下去,最近工作事物繁多乏苦,主要又在寫C#+Webapi這一塊株扛。近來用nod...
    Tony_HQ閱讀 750評論 2 0