A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.geeksforgeeks.org/javascript/javascript-program-for-leaders-in-an-array/ below:

Javascript Program for Leaders in an array

Javascript Program for Leaders in an array

Last Updated : 17 Sep, 2024

Write a program to print all the LEADERS in the array. An element is leader if it is greater than all the elements to its right side. And the rightmost element is always a leader. For example int the array {16, 17, 4, 3, 5, 2}, leaders are 17, 5 and 2. 

Let the input array be arr[] and size of the array be size.

Method 1 (Simple):

Use two loops. The outer loop runs from 0 to size - 1 and one by one picks all elements from left to right. The inner loop compares the picked element to all the elements to its right side. If the picked element is greater than all the elements to its right side, then the picked element is the leader. 

JavaScript
// Javascript Function to print leaders in an array

function printLeaders(arr, size) {
    let output = '';
    for (let i = 0; i < size; i++) {
        let j;
        for (j = i + 1; j < size; j++) {
            if (arr[i] <= arr[j])
                break;
        }
        if (j == size) // the loop didn't break
            output += arr[i] + ' ';
    }
    console.log(output);
}
// driver code 

let arr = [16, 17, 4, 3, 5, 2];
let n = arr.length;

// Function calling 
printLeaders(arr, n); 
Complexity Analysis: Method 2 (Scan from right):

Scan all the elements from right to left in an array and keep track of maximum till now. When maximum changes its value, print it.

Below image is a dry run of the above approach:

Below is the implementation of the above approach:

JavaScript
/* JavaScript Function to print leaders in an array */
let output='';
function printLeaders(arr, size) {
    let max_from_right = arr[size - 1];

    /* Rightmost element is always leader */
    console.log(max_from_right + " ");

    for (let i = size - 2; i >= 0; i--) {
        if (max_from_right < arr[i]) {
            max_from_right = arr[i];
            console.log(max_from_right + " ");
        }
    }
}

/* Driver program to test above function*/

let arr = [16, 17, 4, 3, 5, 2];
let n = arr.length;
printLeaders(arr, n);
Complexity Analysis:

Please refer complete article on Leaders in an array for more details!



RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4