陣列入門題 使否為單調數列 Monotonic Array Leetcode #896

閱讀時間約 2 分鐘
raw-image

這題的題目在這裡:

題目敘述

題目會給一個輸入陣列,要求我們判斷所有的數字是否構成一組單調數列

也就是全部的數字構成一條單調遞增數列(逐漸變大)
或者一條單調遞減數列(逐漸變小)?


測試範例

Example 1:

Input: nums = [1,2,2,3]
Output: true

Example 2:

Input: nums = [6,5,4,4]
Output: true

Example 3:

Input: nums = [1,3,2]
Output: false

 


約束條件

Constraints:

  • 1 <= nums.length <= 105
  • -105 <= nums[i] <= 105

演算法

這題依照定義出發即可。

從左到右逐項檢查,如果發現遞增的某兩項,就把遞增的flag設成True。
同樣道理,如果發現遞減的某兩項,就把遞減的flag設成True。

只要發現 遞增 或 遞減 同時為True,代表無法構成一條單調數列返回False

反之,代表可以,返回True

raw-image



程式碼

class Solution:
 def isMonotonic(self, nums: List[int]) -> bool:
  n = len(nums)
  
  increasing = False
  decreasing = False

  for i in range(n-1):

   if nums[i] < nums[i+1]:
    increasing = True
   
   elif nums[i] > nums[i+1]:
    decreasing = True
   
   # Both increasing and decreasing exist, it is not monotonic series
   if increasing and decreasing:
    return False

  return True



複雜度分析

時間複雜度:

O( n ) 從左到右掃描一遍,每個數字拿去和後面的數字比大小。

空間複查度:

O( 1 ) 只有用到固定大小的臨時變數,占用的記憶體空間為常數級別O(1)。


Reference:

[1] Python O( n ) sol. based on generator expression. 80%+ [ With explanation ] - Monotonic Array - LeetCode

82會員
418Content count
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
發表第一個留言支持創作者!
題目會給我們一個陣列,分別代表高低各不同的隔板高度,問我們從降雨之後,最多可以儲存多少水量?
雖然表面是一道移除元素的題目,但實際上考的還是搬移。 題目要求的是把val目標值移除,等價於 把非目標值的搬到前面,並且回傳這些剩下來的元素個數(也就是 陣列裡面,非目標值的元素總數​)。 請看下方範例,會更好理解。
題目會給定我們一個陣列,要求我們重新安排順序,把等於零的數字搬到後面。 同時必須保持原本數字的前後相對次序。
題目會給定一個陣列,要求我們把裡面的數字依照奇偶數去排序, 偶數的排在前面,奇數的排在後面。
題目會給定一個2D 二維的矩陣,矩陣內的元素值代表對應的高度,要求我們找出相對最高點,也就是(大樓)高度大於N4 東、南、西、北 四個鄰居的索引值。 題目保證矩陣內相鄰的元素值都不相同,也又是相鄰的兩兩相比較,一定有一個比較高,有一個比較矮。
題目會給定一個陣列,陣列裡面的元素分布就像一座山峰。 最大值的左邊都是上坡段,最大值的右邊都是下坡段。 要求我們找出陣列裡面的絕對極大值(absolute max value)所在的陣列索引
題目會給我們一個陣列,分別代表高低各不同的隔板高度,問我們從降雨之後,最多可以儲存多少水量?
雖然表面是一道移除元素的題目,但實際上考的還是搬移。 題目要求的是把val目標值移除,等價於 把非目標值的搬到前面,並且回傳這些剩下來的元素個數(也就是 陣列裡面,非目標值的元素總數​)。 請看下方範例,會更好理解。
題目會給定我們一個陣列,要求我們重新安排順序,把等於零的數字搬到後面。 同時必須保持原本數字的前後相對次序。
題目會給定一個陣列,要求我們把裡面的數字依照奇偶數去排序, 偶數的排在前面,奇數的排在後面。
題目會給定一個2D 二維的矩陣,矩陣內的元素值代表對應的高度,要求我們找出相對最高點,也就是(大樓)高度大於N4 東、南、西、北 四個鄰居的索引值。 題目保證矩陣內相鄰的元素值都不相同,也又是相鄰的兩兩相比較,一定有一個比較高,有一個比較矮。
題目會給定一個陣列,陣列裡面的元素分布就像一座山峰。 最大值的左邊都是上坡段,最大值的右邊都是下坡段。 要求我們找出陣列裡面的絕對極大值(absolute max value)所在的陣列索引
你可能也想看
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
👨‍💻簡介 陣列就像是一個儲存相同類型資料的容器,你可以想像成裝滿了一樣東西的盒子,每個東西都叫做陣列元素。這種類型可以是基本的,像是整數或字串,也可以是你自己定義的型別。不過陣列有個限制,就是大小一旦確定就無法改變。在Go語言裡,陣列的長度也是型別的一部分。
Thumbnail
先天八卦,「震巽为一炁[qì]」,震一阳生,巽一阴生,故为「一炁」。希伯来字母第一个字母alef:א。 意思是善恶分开,事情的开始。上帝是第一推动,上帝创造善的同时,对称的创造了恶。律法区分善恶,意味着善恶是对称的,善恶都是上帝创造的,都是从上帝而来的。上主是一,善恶是上主的两种力量,诫命是让选民去
Thumbnail
震為雷 上下皆震卦,表示接二連三的打雷 打雷就會怕怕,但克服怕怕的恐懼便是不驚慌失措 這是我第四個我每日卦裡抽到的純卦 所謂的純卦就是上下皆是八卦的同一卦 比如我已經抽過的 乾為天 就是上下都是乾卦所以你會看到6橫一, 艮為山就是上下都是艮卦,離為火就是上下都是離卦 當然因為我是抽每日的,所以算是一
Thumbnail
莫瑞泰斯皇家美術館積極邀請大家「交出你的珍珠耳環少女!」,提供自己受到《戴著珍珠耳環的少女》啟發的作品,任何形式、任何媒材,通通都可以!
Thumbnail
  今日加權指數帶量下殺 263 點,全都在意料之中,原先預期為結算日殺盤,沒想到紅太陽突然宣布賣美債影響全球股市下挫。注意看到今日的下殺是有帶量的,而且也就是今日的殺盤中仍然帶有部分買盤,否則這個交易量不會僅 3 家跌停。當然這樣的買盤並不會結束跌勢,而這只是起始點,直到真正的恐慌出現並伴隨著大量
Thumbnail
隨著奧斯卡的落幕, 這一巴掌響出天際成為熱門題材, 成為大家爭相討論模仿的話題, 但其實這背後也帶出許多的議題討論 2022年第94屆奧斯卡頒獎典禮上,喜劇演員—克里斯洛克(Chris Rock) 在舞台上大開威爾史密斯(Will Smith)的妻子 便衝上台給了克里斯一個響亮的巴掌,
Thumbnail
平日都睡很晚的我,今天早上為了搶前四百萬名數位綁定才有的好食券難得早起,不到九點就把讀卡機啥的準備好,連官網及銀行的連結都先連好,免得活動開始,連網頁都點不進去。
Thumbnail
不知道你去預購振興券了嗎?經過此次疫情似乎也有不少人投向了書籍的懷抱,可能你就是其中之一。因此你想邁入書店購入幾本書,卻在茫忙書海中疑惑了嗎?這份書單能帶給你初次在書海中遨遊的方向!
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
👨‍💻簡介 陣列就像是一個儲存相同類型資料的容器,你可以想像成裝滿了一樣東西的盒子,每個東西都叫做陣列元素。這種類型可以是基本的,像是整數或字串,也可以是你自己定義的型別。不過陣列有個限制,就是大小一旦確定就無法改變。在Go語言裡,陣列的長度也是型別的一部分。
Thumbnail
先天八卦,「震巽为一炁[qì]」,震一阳生,巽一阴生,故为「一炁」。希伯来字母第一个字母alef:א。 意思是善恶分开,事情的开始。上帝是第一推动,上帝创造善的同时,对称的创造了恶。律法区分善恶,意味着善恶是对称的,善恶都是上帝创造的,都是从上帝而来的。上主是一,善恶是上主的两种力量,诫命是让选民去
Thumbnail
震為雷 上下皆震卦,表示接二連三的打雷 打雷就會怕怕,但克服怕怕的恐懼便是不驚慌失措 這是我第四個我每日卦裡抽到的純卦 所謂的純卦就是上下皆是八卦的同一卦 比如我已經抽過的 乾為天 就是上下都是乾卦所以你會看到6橫一, 艮為山就是上下都是艮卦,離為火就是上下都是離卦 當然因為我是抽每日的,所以算是一
Thumbnail
莫瑞泰斯皇家美術館積極邀請大家「交出你的珍珠耳環少女!」,提供自己受到《戴著珍珠耳環的少女》啟發的作品,任何形式、任何媒材,通通都可以!
Thumbnail
  今日加權指數帶量下殺 263 點,全都在意料之中,原先預期為結算日殺盤,沒想到紅太陽突然宣布賣美債影響全球股市下挫。注意看到今日的下殺是有帶量的,而且也就是今日的殺盤中仍然帶有部分買盤,否則這個交易量不會僅 3 家跌停。當然這樣的買盤並不會結束跌勢,而這只是起始點,直到真正的恐慌出現並伴隨著大量
Thumbnail
隨著奧斯卡的落幕, 這一巴掌響出天際成為熱門題材, 成為大家爭相討論模仿的話題, 但其實這背後也帶出許多的議題討論 2022年第94屆奧斯卡頒獎典禮上,喜劇演員—克里斯洛克(Chris Rock) 在舞台上大開威爾史密斯(Will Smith)的妻子 便衝上台給了克里斯一個響亮的巴掌,
Thumbnail
平日都睡很晚的我,今天早上為了搶前四百萬名數位綁定才有的好食券難得早起,不到九點就把讀卡機啥的準備好,連官網及銀行的連結都先連好,免得活動開始,連網頁都點不進去。
Thumbnail
不知道你去預購振興券了嗎?經過此次疫情似乎也有不少人投向了書籍的懷抱,可能你就是其中之一。因此你想邁入書店購入幾本書,卻在茫忙書海中疑惑了嗎?這份書單能帶給你初次在書海中遨遊的方向!