Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จำนวนที่ใหญ่ที่สุดสองเท่าใน Python


สมมติว่าเรามีรายการตัวเลข เราต้องตรวจสอบว่าจำนวนที่มากที่สุดนั้นมากกว่าจำนวนที่ใหญ่เป็นอันดับสองมากกว่าสองเท่าหรือไม่ ตัวอย่างเช่น หากรายการเป็นแบบ [3, 9, 6] ก็จะคืนค่าเท็จ เนื่องจาก 9 มีขนาดไม่เกิน 12 (2 คูณ 6) เมื่อรายการเป็น [6, 3, 15] รายการนั้นจะกลับมาเป็นจริง เนื่องจาก 15 มีค่ามากกว่า 12 (2 คูณ 6)

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ถ้าขนาดของ nums <2 แล้ว
    • คืนค่าเท็จ
  • p_max :=ขั้นต่ำของ nums[0] และ nums[1]
  • c_max :=สูงสุดของ nums[0] และ nums[1]
  • สำหรับ i ในช่วง 2 ถึงขนาดของ nums ให้ทำ
    • ถ้า nums[i]> p_max แล้ว
      • ถ้า nums[i]> c_max แล้ว
        • p_max :=c_max
        • c_max :=nums[i]
      • มิฉะนั้น
        • p_max :=nums[i]
  • ส่งคืน c_max> p_max * 2

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

class Solution:
   def solve(self, nums):
      if len(nums) < 2:
         return False
         p_max = min(nums[0], nums[1])
         c_max = max(nums[0], nums[1])
         for i in range(2, len(nums)):
            if nums[i] > p_max:
               if nums[i] > c_max:
                  p_max = c_max
                  c_max = nums[i]
               else:
                  p_max = nums[i]
         return c_max > p_max * 2
ob = Solution()
nums = [3,6,15]
print(ob.solve(nums))

อินพุต

[3,6,15]

ผลลัพธ์

None