Largest Number At Least Twice of Others
💻 coding

Largest Number At Least Twice of Others

1 min read 172 words
1 min read
ShareWhatsAppPost on X
  • 1The algorithm checks if the largest element in an array is at least twice as large as every other element.
  • 2If the condition is met, it returns the index of the largest element; otherwise, it returns -1.
  • 3The solution has a time complexity of O(n) and a space complexity of O(1).

AI-generated summary · May not capture all nuances

Key Insight
AskGif

"The algorithm checks if the largest element in an array is at least twice as large as every other element."

Largest Number At Least Twice of Others

In a given integer array nums, there is always exactly one largest element.

Find whether the largest element in the array is at least twice as much as every other number in the array.

If it is, return the index of the largest element, otherwise, return -1.

Example 1:

Input: nums = [3, 6, 1, 0] Output: 1 Explanation: 6 is the largest integer and for every other number in the array x, 6 is more than twice as big as x. The index of value 6 is 1, so we return 1.

Example 2:

Input: nums = [1, 2, 3, 4] Output: -1 Explanation: 4 isn't at least as big as twice the value of 3, so we return -1.

public class Solution {
 public int DominantIndex(int[] nums) {
 int max = -1;
 int index = -1;
 int second = -1;
 
 for(int i=0;i<nums.Length;i++){
 if(nums[i]>max){
 second = max;
 max = nums[i];
 index = i;
 }
 else if(nums[i]>second){
 second = nums[i];
 }
 } 
 
 return second*2<=max?index:-1;
 }
}

Time Complexity: O(n)

Space Complexity: O(1)

Enjoyed this article?

Share it with someone who'd find it useful.

ShareWhatsAppPost on X

sumitc91

Published on 26 September 2020 · 1 min read · 172 words

Part of AskGif Blog · coding

You might also like