Python程式:查詢具有唯一元素的最長連續子列表的長度


假設我們有一個名為nums的數字列表,其中所有元素都是唯一的。我們必須找到包含連續元素的最長子列表的長度。

因此,如果輸入類似於nums = [3, 6, 7, 5, 4, 9],則輸出將為5,因為子列表為[3, 6, 7, 5, 4],它包含從3到7的所有連續元素。

為了解決這個問題,我們將遵循以下步驟:

  • ret := 0
  • 對於範圍從0到nums大小-1的i,執行:
    • lhs := nums[i]
    • rhs := nums[i]
    • 對於範圍從i到nums大小-1的j,執行:
      • lhs := lhs和nums[j]的最小值
      • rhs := rhs和nums[j]的最大值
      • 如果(rhs - lhs)等於(j - i),則:
        • ret := ret和(j - i + 1)的最大值
  • 返回ret

示例

讓我們看看以下實現以獲得更好的理解:

def solve(nums):
   ret = 0
   for i in range(len(nums)):
    lhs = nums[i]
   rhs = nums[i]
   for j in range(i, len(nums)):
      lhs = min(lhs, nums[j])
      rhs = max(rhs, nums[j])
      if rhs - lhs == j - i:
          ret = max(ret, j - i + 1)
   return ret

nums = [3, 6, 7, 5, 4, 9]
print(solve(nums))

輸入

[3, 6, 7, 5, 4, 9]

輸出

1

更新於: 2021年10月19日

273 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.