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