Largest Number By Two Times in Python



Suppose we have a list of numbers; we have to check whether the largest number is bigger than the second-largest number by more than two times. As an example, if the list is like [3, 9, 6], then it will return false, as 9 is not bigger than 12 (2 times 6). When the list is [6, 3, 15], it will return true, as 15 is bigger than 12 (2 times 6).

To solve this, we will follow these steps −

  • if size of nums < 2, then
    • return False
  • p_max := minimum of nums[0] and nums[1]
  • c_max := maximum of nums[0] and nums[1]
  • for i in range 2 to size of nums, do
    • if nums[i] > p_max, then
      • if nums[i] > c_max, then
        • p_max := c_max
        • c_max := nums[i]
      • otherwise,
        • p_max := nums[i]
  • return c_max > p_max * 2

Let us see the following implementation to get better understanding −

Example

 Live Demo

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))

Input

[3,6,15]

Output

None
Updated on: 2020-09-23T07:32:53+05:30

299 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements