สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums เราต้องตรวจสอบว่ามีตัวเลขสองตัวหรือไม่ โดยตัวหนึ่งเป็นสามของอีกตัวหนึ่งหรือไม่
ดังนั้น หากอินพุตเป็น nums =[2, 3, 10, 7, 9] ผลลัพธ์จะเป็น True เนื่องจาก 9 คือค่าสามของ 3
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
ผม :=0
-
เรียงลำดับรายการ n
-
เจ :=1
-
ในขณะที่ j <ขนาดของ n ทำ
-
ถ้า 3*n[i] เหมือนกับ n[j] แล้ว
-
คืนค่า True
-
-
ถ้า 3*n[i]> n[j] แล้ว
-
เจ :=เจ + 1
-
-
มิฉะนั้น
-
ผม :=ผม + 1
-
-
-
คืนค่าเท็จ
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
class Solution: def solve(self, n): i = 0 n.sort() j = 1 while (j < len(n)): if (3*n[i] == n[j]): return True if (3*n[i] > n[j]): j += 1 else: i += 1 return False ob = Solution() print(ob.solve([2, 3, 10, 7, 9]))
อินพุต
[2, 3, 10, 7, 9]
ผลลัพธ์
True