Giả sử chúng ta có một mảng số chưa được sắp xếp, chúng ta phải tìm độ dài của dãy số dài nhất của các phần tử liên tiếp.
Vì vậy, nếu đầu vào giống như nums =[70, 7, 50, 4, 6, 5], thì đầu ra sẽ là 4, vì dãy dài nhất của các phần tử liên tiếp là [4, 5, 6, 7]. vì vậy chúng tôi trả về độ dài của nó:4.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
nums:=tất cả các phần tử duy nhất của nums
-
max_cnt:=0
-
đối với mỗi số trong số, thực hiện
-
nếu num - 1 không phải trong nums, thì
-
cnt:=0
-
trong khi num hiện diện trong nums, hãy thực hiện
-
num:=num + 1
-
cnt:=cnt + 1
-
-
max_cnt:=tối đa của max_cnt và cnt
-
-
-
trả về max_cnt
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
class Solution: def solve(self, nums): nums = set(nums) max_cnt = 0 for num in nums: if num - 1 not in nums: cnt = 0 while num in nums: num += 1 cnt += 1 max_cnt = max(max_cnt, cnt) return max_cnt ob = Solution() nums = [70, 7, 50, 4, 6, 5] print(ob.solve(nums))
Đầu vào
[70, 7, 50, 4, 6, 5]
Đầu ra
4