Python程式:查詢最長不重複子列表的長度
假設我們有一個名為nums的數字列表,我們需要找到其中所有元素都唯一的最大連續子列表的長度。
例如,如果輸入為nums = [6, 2, 4, 6, 3, 4, 5, 2],則輸出為5,因為最長的唯一元素列表是[6, 3, 4, 5, 2]。
為了解決這個問題,我們將遵循以下步驟:
head := 0,dct := 一個新的對映
max_dist := 0
對於nums中的每個索引i和元素num,執行以下操作:
如果num在dct中並且dct[num] >= head,則
head := dct[num] + 1
dct[num] := i
如果i - head + 1 > max_dist,則
max_dist := i - head + 1
返回max_dist
讓我們看下面的實現來更好地理解:
示例
class Solution:
def solve(self, nums):
head = 0
dct = {}
max_dist = 0
for i, num in enumerate(nums):
if num in dct and dct[num] >= head:
head = dct[num] + 1
dct[num] = i
if i - head + 1 > max_dist:
max_dist = i - head + 1
return max_dist
ob = Solution()
nums = [6, 2, 4, 6, 3, 4, 5, 2]
print(ob.solve(nums))輸入
[6, 2, 4, 6, 3, 4, 5, 2]
輸出
5
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP