LeetCode-python 1040.移動石子直到連續(xù) II

題目鏈接
難度:中等 ??????類型:數(shù)組、滑動窗口


在一個長度無限的數(shù)軸上,第 i 顆石子的位置為 stones[i]。如果一顆石子的位置最小/最大,那么該石子被稱作端點石子。

每個回合,你可以將一顆端點石子拿起并移動到一個未占用的位置,使得該石子不再是一顆端點石子。

值得注意的是,如果石子像 stones = [1,2,5] 這樣,你將無法移動位于位置 5 的端點石子,因為無論將它移動到任何位置(例如 0 或 3),該石子都仍然會是端點石子。

當(dāng)你無法進行任何移動時,即,這些石子的位置連續(xù)時,游戲結(jié)束。

要使游戲結(jié)束,你可以執(zhí)行的最小和最大移動次數(shù)分別是多少? 以長度為 2 的數(shù)組形式返回答案:answer = [minimum_moves, maximum_moves] 。

示例1

輸入:[7,4,9]
輸出:[1,2]
解釋:
我們可以移動一次,4 -> 8,游戲結(jié)束。
或者,我們可以移動兩次 9 -> 5,4 -> 6,游戲結(jié)束。

示例2

輸入:[6,5,4,3,10]
輸出:[2,3]
解釋:
我們可以移動 3 -> 8,接著是 10 -> 7,游戲結(jié)束。
或者,我們可以移動 3 -> 7, 4 -> 8, 5 -> 9,游戲結(jié)束。
注意,我們無法進行 10 -> 2 這樣的移動來結(jié)束游戲,因為這是不合要求的移動。

示例3

輸入:[100,101,104,102,103]
輸出:[0,0]

解題思路


1.排序
2.最大值:max(移到最左,移到最右)
3.最小值:

  • 連續(xù)值a<總長度n,外面有幾個值就移幾步,所有可能去最小
  • 連續(xù)值a == n-1, 移動2步即可

代碼實現(xiàn)

class Solution(object):
    def numMovesStonesII(self, stones):
        """
        :type stones: List[int]
        :rtype: List[int]
        """
        stones.sort()
        i, n = 0, len(stones)
        min_moves = n
        max_moves = max(stones[-1]-stones[1], stones[-2]-stones[0])-n+2
        for j in range(n):
            while stones[j]-stones[i] >= n:
                i += 1
            if j-i+1 == n-1 and stones[j]-stones[i]==n-2:
                min_moves = min(2, min_moves)
            else:
                min_moves = min(min_moves, n-(j-i+1))
        return [min_moves, max_moves]

本文鏈接:http://www.itdecent.cn/p/936d53fdd3e9

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 更多精彩內(nèi)容,請關(guān)注【力扣簡單題】。 題目 難度:★★☆☆☆類型:數(shù)組,益智 三枚石子放置在數(shù)軸上,位置分別為 a...
    玖月晴閱讀 472評論 0 0
  • 文章目錄:題目要求解題思路具體實現(xiàn)改進之路總結(jié) 1. 題目要求 三枚石子放置在數(shù)軸上,位置分別為 a,b,c。每一...
    EmilyCH閱讀 239評論 0 0
  • 題目描述 移動石子直到連續(xù) 三枚石子放置在數(shù)軸上,位置分別為 a,b,c。 每一回合,我們假設(shè)這三枚石子當(dāng)前分別位...
    一只可愛的檸檬樹閱讀 216評論 0 0
  • 題目鏈接難度: 中等 類型:動態(tài)規(guī)劃 亞歷克斯和李用幾堆石子在做游戲。偶數(shù)堆石子排成一行,每堆都...
    wzNote閱讀 7,758評論 0 1
  • 夜色可人風(fēng)兒輕 藥店買藥好時候 病人慢慢走在前 轉(zhuǎn)身換藥行在后 原想大步追得上 不急不...
    山高欲攀閱讀 650評論 4 49

友情鏈接更多精彩內(nèi)容