Problem Description
Given an array arr of integers, check if there exists two integers N and M such that N is the double of M ( i.e N = 2* M).
Example 1 :-
Input: arr = [10,2,5,3]
Output: true
Explanation: N = 10 is the double of M = 5,that is, 10 = 2 * 5.
Example 2 :-
Input: arr = [7,1,14,11]
Output: true
Explanation: N = 14 is the double of M = 7,that is, 14 = 2 * 7.
Example 3 :-
Input: arr = [3,1,7,11]
Output: false
Explanation: In this case does not exist N and M, such that N = 2 * M.
See full problem description on Leetcode :-
Solution 1 :- Using For loop
class Solution {
public boolean checkIfExist(int[] arr) {
// Loop through array
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length; j++) {
// Check if i and j is not same and N * 2 = M
if (i != j && arr[i] * 2 == arr[j]) {
return true;
}
}
}
return false;
}
}
Explanation :-
- Both for loop goes until arr length.
- In if loop checking both i and j are not at same position and array's i element is double of array's j element. If condition becomes true then return true otherwise return false after both loop end.
Solution 2 :- Using ArrayList
public boolean checkIfExist(int[] arr) {
// Declare and Initialize arraylist
ArrayList<Integer> list = new ArrayList<Integer>();
// Adding all array elements into arraylist
for(int i = 0; i < arr.length; i++) {
list.add(arr[i]);
}
// Check if current element * 2 is exist or not. if exist then return true
for(int i = 0; i < arr.length; i++) {
if(list.contains(arr[i] * 2) && i != list.indexOf(arr[i] * 2)) {
return true;
}
}
return false;
}
Explanation :-
- Declare and initialize arraylist.
- After loop through array and add all array elements into arraylist one by one.
- Now again loop through array and check arraylist contains our element that matches our condition ( N and M such that N is the double of M).
- list.indexOf(arr[i] * 2), this condition check first occurrence of given number. this condition is helpfull when there is only one 0 given in array. Becuse of this condition it does not count itself.
Hope you understand better.
Happy Coding.
Other Leetcode problems and solution in java you may like :-
Comments
Post a Comment