Giả sử chúng ta có một mảng số được gọi là nums. Chúng tôi phải kiểm tra xem nó có chứa các giá trị liền kề hay không.
Vì vậy, nếu đầu vào là nums =[6, 8, 3, 5, 4, 7], thì đầu ra sẽ đúng vì các phần tử là 3, 4, 5, 6, 7, 8.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- nếu kích thước của nums <1, thì
- trả về Sai
- min_val:=tối thiểu nums, max_val:=tối đa nums
- nếu (max_val - min_val + 1) bằng với kích thước của nums, thì
- đối với tôi trong phạm vi từ 0 đến kích thước của nums, hãy thực hiện
- nếu nums [i] <0, thì
- j:=-nums [i] - min_val
- nếu không,
- j:=nums [i] - min_val
- nếu nums [j]> 0, thì
- nums [j]:=-nums [j]
- nếu không,
- trả về Sai
- nếu nums [i] <0, thì
- trả về True
- đối với tôi trong phạm vi từ 0 đến kích thước của nums, hãy thực hiện
- trả về Sai
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
def solve(nums): if len(nums) < 1: return False min_val = min(nums) max_val = max(nums) if max_val - min_val + 1 == len(nums): for i in range(len(nums)): if nums[i] < 0: j = -nums[i] - min_val else: j = nums[i] - min_val if nums[j] > 0: nums[j] = -nums[j] else: return False return True return False nums = [6, 8, 3, 5, 4, 7] print(solve(nums))
Đầu vào
[6, 8, 3, 5, 4, 7]
Đầu ra
True