สมมติว่าเรามีรายการที่เรียกว่า 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