สมมติว่าเรามีรายการที่เรียกว่า nums เราต้องตรวจสอบว่าเราสามารถจัดเรียงลำดับของ nums ใหม่ในลักษณะที่ความแตกต่างระหว่างทุกคู่ของตัวเลขสองตัวที่ต่อเนื่องกันนั้นเท่ากันหรือไม่
ดังนั้น หากอินพุตเป็น nums =[8, 2, 6, 4] ผลลัพธ์จะเป็น True เพราะหากเราจัดเรียง nums ใหม่เช่น [2, 4, 6, 8] ดังนั้นความแตกต่างระหว่างทุก ๆ สองคู่ของ ตัวเลขต่อเนื่องกันคือ 2.
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
N :=ขนาดของ nums
-
ถ้า N <=2 แล้ว
-
คืนค่า True
-
-
เรียงเลขรายการ
-
targetDiff :=nums[1] - nums[0]
-
สำหรับฉันอยู่ในช่วง 2 ถึง N - 1 ทำ
-
ถ้า nums[i] - nums[i - 1] ไม่เหมือนกับ targetDiff แล้ว
-
คืนค่าเท็จ
-
-
-
คืนค่า True
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น
def solve(nums):
N = len(nums)
if N <= 2:
return True
nums.sort()
targetDiff = nums[1] - nums[0]
for i in range(2, N):
if nums[i] - nums[i - 1] != targetDiff:
return False
return True
nums = [8, 2, 6, 4]
print(solve(nums)) อินพุต
[8, 2, 6, 4]
ผลลัพธ์
True