IOS 算法(中級篇) ----- 愛生氣的書店老板

今天绳锅,書店老板有一家店打算試營業(yè) customers.length 分鐘捕发。每分鐘都有一些顧客(customers[i])會進(jìn)入書店旭绒,所有這些顧客都會在那一分鐘結(jié)束后離開慧邮。在某些時候鞠评,書店老板會生氣猜拾。 如果書店老板在第 i 分鐘生氣大莫,那么 grumpy[i] = 1鳖悠,否則 grumpy[i] = 0烈炭。 當(dāng)書店老板生氣時溶锭,那一分鐘的顧客就會不滿意,不生氣則他們是滿意的梳庆。書店老板知道一個秘密技巧暖途,能抑制自己的情緒,可以讓自己連續(xù) X 分鐘不生氣膏执,但卻只能使用一次驻售。請你返回這一天營業(yè)下來,最多有多少客戶能夠感到滿意的數(shù)量更米。

例子

輸入:customers = [1,0,1,2,1,1,7,5], grumpy = [0,1,0,1,0,1,0,1], X = 3
輸出:16
解釋:
書店老板在最后 3 分鐘保持冷靜欺栗。
感到滿意的最大客戶數(shù)量 = 1 + 1 + 1 + 1 + 7 + 5 = 16.

其中
1 <= X <= customers.length == grumpy.length <= 20000
0 <= customers[i] <= 1000
0 <= grumpy[i] <= 1

解題思路

比較典型的滑動窗口, 雙指針求解問題
首先提醒大家, 生氣不好, 好孩子不要學(xué)哦~

1.先計算初始用戶滿意度
2.依次循環(huán)找到, 每個區(qū)間變化的滿意度總數(shù), 并找到最大變化的滿意度總數(shù)
3.初始滿意度 + 最大變化的滿意度就是我們要找的結(jié)果

1.png
2.png
3.png
4.png
5.png
6.png
7.png

代碼

未翻譯版


    func maxSatisfied(_ customers: [Int], _ grumpy: [Int], _ X: Int) -> Int {

        var maxsave = 0, sum = 0, last = 0, next = X - 1
        
        for i in 0..<customers.count {
            if grumpy[i] == 0 {
                sum = sum + customers[i]
            }
        }
        
        while next < customers.count {
            
            var temp = 0
            for i in last...next {
                if grumpy[i] == 1 {
                    temp += customers[i]
                }
            }
            
            maxsave = max(temp, maxsave)
            
            last += 1
            next += 1
        }
        
        return sum + maxsave
        
    }

翻譯版

    func maxSatisfied(_ customers: [Int], _ grumpy: [Int], _ X: Int) -> Int {

        // 定義最大變化數(shù), 初始總數(shù), 起止2個指針
        var maxsave = 0, sum = 0, last = 0, next = X - 1

        // 循環(huán), 找到初始滿意度總數(shù)
        for i in 0..<customers.count {

            // 0: 滿意, 1: 不滿意, 我們判斷0, 依次添加
            if grumpy[i] == 0 {
                sum = sum + customers[i]
            }
        }
        
        // 雙指針查找新增的總數(shù)
        while next < customers.count {

            // 定義滑動區(qū)間變化初始值
            var temp = 0
            
            // 循環(huán)判斷滑動窗口中的變化值
            for i in last...next {
                 
                // 不滿足:1全變瞞住, 找到窗口中對應(yīng)1下表的用戶值, 依次增加
                if grumpy[i] == 1 {
                    
                    temp += customers[i]
                }
            }
            
            // 取每次循環(huán)的最大值
            maxsave = max(temp, maxsave)
            
            // last + 1, next + 1 繼續(xù)滑動
            last += 1
            next += 1
        }
        
        // 返回最大的滿意度
        return sum + maxsave
        
    }

題目來源:力扣(LeetCode) 感謝力扣爸爸 :)
IOS 算法合集地址

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子迟几,更是在濱河造成了極大的恐慌消请,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件类腮,死亡現(xiàn)場離奇詭異臊泰,居然都是意外死亡,警方通過查閱死者的電腦和手機蚜枢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門缸逃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人厂抽,你說我怎么就攤上這事需频。” “怎么了筷凤?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵昭殉,是天一觀的道長。 經(jīng)常有香客問我藐守,道長挪丢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任吗伤,我火速辦了婚禮吃靠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘足淆。我一直安慰自己巢块,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布巧号。 她就那樣靜靜地躺著族奢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪丹鸿。 梳的紋絲不亂的頭發(fā)上越走,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機與錄音靠欢,去河邊找鬼廊敌。 笑死,一個胖子當(dāng)著我的面吹牛门怪,可吹牛的內(nèi)容都是我干的骡澈。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼掷空,長吁一口氣:“原來是場噩夢啊……” “哼肋殴!你這毒婦竟也來了囤锉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤护锤,失蹤者是張志新(化名)和其女友劉穎官地,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烙懦,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡驱入,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了修陡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沧侥。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡可霎,死狀恐怖魄鸦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情癣朗,我是刑警寧澤拾因,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站旷余,受9級特大地震影響绢记,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜正卧,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一蠢熄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧炉旷,春花似錦签孔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至罐盔,卻和暖如春但绕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背惶看。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工捏顺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纬黎。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓幅骄,卻偏偏與公主長得像,于是被迫代替她去往敵國和親莹桅。 傳聞我的和親對象是個殘疾皇子昌执,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

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