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

จำนวนที่มากที่สุด อย่างน้อย อย่างน้อย สองเท่าของผู้อื่นใน Python


สมมติว่าเรามีอาร์เรย์จำนวนเต็มที่เรียกว่า nums ตอนนี้จะมีหนึ่งองค์ประกอบที่ใหญ่ที่สุดเสมอ เราต้องตรวจสอบว่าองค์ประกอบที่ใหญ่ที่สุดในอาร์เรย์อย่างน้อยสองเท่าของตัวเลขอื่น ๆ ในอาร์เรย์ หากเป็นเช่นนั้น เราก็ต้องหาดัชนีขององค์ประกอบที่ใหญ่ที่สุด มิฉะนั้น ให้คืนค่า -1

ดังนั้น หากอินพุตเป็น [3,6,1,0] เอาต์พุตจะเป็น 1 เนื่องจาก 6 เป็นจำนวนที่มากที่สุด และสำหรับจำนวนอื่นๆ ในอาร์เรย์ x 6 มีขนาดใหญ่กว่า x สองเท่า . เนื่องจากดัชนีของ 6 คือ 1 ดังนั้นผลลัพธ์จึงเป็น 1 ด้วย

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

  • สูงสุด :=สูงสุดของ nums
  • สำหรับ i ในช่วง 0 ถึงขนาดของ nums ให้ทำ
    • ถ้า nums[i] เท่ากับค่าสูงสุด แล้ว
      • maxindex :=ฉัน
    • ถ้า nums[i] ไม่เหมือนกับค่าสูงสุดและค่าสูงสุด <2*(nums[i]) แล้ว
      • คืน -1

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

ตัวอย่าง

class Solution:
   def dominantIndex(self, nums):
      maximum = max(nums)
      for i in range(len(nums)):
         if nums[i] == maximum:
            maxindex = i
         if nums[i] != maximum and maximum < 2*(nums[i]):
            return -1
      return maxindex
ob = Solution()
print(ob.dominantIndex([3, 6, 1, 0]))

อินพุต

[3, 6, 1, 0]

ผลลัพธ์

1