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.
Solution
Disclaimer: Don’t jump directly to the solution, try it out yourself first.
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:
C++ 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
Time Complexity: O(N*log(N))
Space Complexity: O(n)
Java Code
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
Time Complexity: O(N*log(N))
Space Complexity: O(n)
Python Code
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
Time Complexity: O(N*log(N))
Space Complexity: O(n)
Solution2: Using a max variable
Intuition: We can maintain a max variable which 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:
C++ 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
Time Complexity: O(N)
Space Complexity: O(1)
Java Code
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
Time Complexity: O(N)
Space Complexity: O(1)
Python Code
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
Time Complexity: O(N)
Space Complexity: O(1)
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