Problem Statement: Given an array, we have to find the largest element in the array.
Examples
Example 1: Input: arr[] = {2,5,1,3,0}; Output: 5 Explanation: 5 is the largest element in the array. Example2: Input: arr[] = {8,10,5,7,9}; Output: 10 Explanation: 10 is the largest element in the array.
Disclaimer: Don’t jump directly to the solution, try it out yourself first.
Brute Force Approach
Algorithm / Intuition
Solution1: Sorting
Intuition:
We can sort the array in ascending order, hence the largest element will be at the last index of the array.
Approach:
- Sort the array in ascending order.
- Print the (size of the array -1)th index.
DryRun:
Before sorting: arr[] = {2,5,1,3,0};
After sorting: arr[] = {0,1,2,3,5};
Hence answer : arr[sizeofthearray-1] =5
Code
#include<bits/stdc++.h>
using namespace std;
int sortArr(vector<int>& arr) {
sort(arr.begin(),arr.end());
return arr[arr.size()-1];
}
int main() {
vector<int> arr1 = {2,5,1,3,0};
vector<int> arr2 = {8,10,5,7,9};
cout<<"The Largest element in the array is: "<<sortArr(arr1)<<endl;
cout<<"The Largest element in the array is: "<<sortArr(arr2);
return 0;
}
Output:
The Largest element in the array is: 5
The Largest element in the array is: 10
import java.util.*;
public class tuf {
public static void main(String args[]) {
int arr1[] = {2,5,1,3,0};
System.out.println("The Largest element in the array is: " + sort(arr1));
int arr2[] = {8,10,5,7,9};
System.out.println("The Largest element in the array is: " + sort(arr2));
}
static int sort(int arr[]) {
Arrays.sort(arr);
return arr[arr.length - 1];
}
}
Output:
The Largest element in the array is: 5
The Largest element in the array is: 10
from typing import List
def sortArr(arr: List[int]) -> int:
arr.sort()
return arr[-1]
if __name__ == "__main__":
arr1 = [2, 5, 1, 3, 0]
arr2 = [8, 10, 5, 7, 9]
print("The Largest element in the array is:", sortArr(arr1))
print("The Largest element in the array is:", sortArr(arr2))
Output:
The Largest element in the array is: 5
The Largest element in the array is: 10
function sortArr(arr) {
arr.sort((a, b) => a - b);
return arr[arr.length - 1];
}
const arr1 = [2, 5, 1, 3, 0];
const arr2 = [8, 10, 5, 7, 9];
console.log("The Largest element in the array is: " + sortArr(arr1));
console.log("The Largest element in the array is: " + sortArr(arr2));
Output:
The Largest element in the array is: 5
The Largest element in the array is: 10
Complexity Analysis
Time Complexity: O(N*log(N))
Space Complexity: O(n)
Recursive Approach
Algorithm / Intuition
Solution2: Using a max variable
Intuition:
We can maintain a max variable that will update whenever the current value is greater than the value in the max variable.
Approach:
- Create a max variable and initialize it with arr[0].
- Use a for loop and compare it with other elements of the array
- If any element is greater than the max value, update max value with the element’s value
- Print the max variable.
Code
#include <bits/stdc++.h>
using namespace std;
int findLargestElement(int arr[], int n) {
int max = arr[0];
for (int i = 0; i < n; i++) {
if (max < arr[i]) {
max = arr[i];
}
}
return max;
}
int main() {
int arr1[] = {2,5,1,3,0};
int n = 5;
int max = findLargestElement(arr1, n);
cout << "The largest element in the array is: " << max << endl;
int arr2[] = {8,10,5,7,9};
n = 5;
max = findLargestElement(arr2, n);
cout << "The largest element in the array is: " << max<<endl;
return 0;
}
Output:
The largest element in the array is: 5
The largest element in the array is: 10
import java.util.*;
public class tuf {
public static void main(String args[]) {
int arr1[] = {2,5,1,3,0};
System.out.println("The Largest element in the array is: "+findLargestElement(ar
r1));
int arr2[] = {8,10,5,7,9};
System.out.println("The Largest element in the array is: "+findLargestElement(ar
r2));
}
static int findLargestElement(int arr[]) {
int max= arr[0];
for (int i = 0; i < arr.length; i++) {
if (arr[i] > max) {
max= arr[i];
}
}
return max;
}
}
Output:
The largest element in the array is: 5
The largest element in the array is: 10
def findLargestElement(arr, n):
max = arr[0]
for i in range(0, n):
if (max < arr[i]):
max = arr[i]
return max
if __name__ == "__main__":
arr1 = [2, 5, 1, 3, 0]
n = 5
max = findLargestElement(arr1, n)
print("The largest element in the array is:", max)
arr2 = [8, 10, 5, 7, 9]
n = 5
max = findLargestElement(arr2, n)
print("The largest element in the array is:", max)
Output:
The largest element in the array is: 5
The largest element in the array is: 10
function findLargestElement(arr) {
let max = arr[0];
for (let i = 0; i < arr.length; i++) {
if (max < arr[i]) {
max = arr[i];
}
}
return max;
}
const arr1 = [2, 5, 1, 3, 0];
let max = findLargestElement(arr1);
console.log("The largest element in the array is: " + max);
const arr2 = [8, 10, 5, 7, 9];
max = findLargestElement(arr2);
console.log("The largest element in the array is: " + max);
Output:
The largest element in the array is: 5
The largest element in the array is: 10
Complexity Analysis
Time Complexity: O(N)
Space Complexity: O(1)
Video Explanation
Special thanks to Prashant Sahu and Sudip Ghosh for contributing to this article on takeUforward. If you also wish to share your knowledge with the takeUforward fam, please check out this article