Giả sử chúng ta có một số mảng gồm các phần tử duy nhất. Chúng tôi phải kiểm tra xem các điều kiện này có thỏa mãn hay không:
- Các phần tử sẽ nằm trong phạm vi từ 1 đến n.
- Mảng không được sắp xếp theo thứ tự tăng dần.
Vì vậy, nếu đầu vào giống như nums =[2,6,1,5,3,4], thì đầu ra sẽ là True.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- n:=kích thước của nums
- tổng số:=nums [0]
- is_sorted:=True
- đối với tôi trong phạm vi từ 1 đến n - 1, thực hiện
- nếu nums [i] giống nums [i - 1], thì
- trả về Sai
- nếu nums [i]
- is_sorted:=False
- nếu nums [i] giống nums [i - 1], thì
- tổng số:=total + nums [i]
- trả về Sai
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Mã mẫu
def solve(nums): n = len(nums) total = nums[0] is_sorted = True for i in range(1,n): if nums[i] == nums[i - 1]: return False if nums[i] < nums[i - 1]: is_sorted = False total += nums[i] if is_sorted: return False return total == (n * (n + 1) // 2) nums = [2,6,1,5,3,4] print(solve(nums))
Đầu vào
[2,6,1,5,3,4]
Đầu ra
True