Python程式:查詢最短子列表,排序後整個列表將按升序排序
假設我們有一個名為nums的數字列表,我們必須找到nums中最短子列表的長度,如果子列表已排序,則整個陣列nums將按升序排序。
因此,如果輸入類似於nums = [1,2,5,4,9,10],則輸出將為2,因為對子列表[4, 3]進行排序將得到我們[0, 1, 3, 4, 8, 9]。(此處示例數字與描述不符,應修改示例)
為了解決這個問題,我們將遵循以下步驟:
- f:= -1, l:= -1
- lst:= 對列表nums進行排序
- 對於範圍從0到nums大小的i,執行:
- 如果nums[i]與lst[i]不同,則:
- 如果f等於-1,則:
- f := i
- 否則:
- l := i
- 如果f等於-1,則:
- 如果nums[i]與lst[i]不同,則:
- 如果l等於-1且f等於-1,則:
- 返回0
- 返回l - f + 1
讓我們看看下面的實現來更好地理解:
示例
class Solution: def solve(self, nums): f=-1 l=-1 lst=sorted(nums) for i in range(len(nums)): if nums[i]!=lst[i]: if f == -1: f=i else: l=i if l == -1 and f == -1: return 0 return l-f+1 ob = Solution() print(ob.solve([1,2,5,4,9,10]))
輸入
[1,2,5,4,9,10]
輸出
2
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP