Value equal to index value
Given an array Arr of N positive integers. Your task is to find the elements whose value is equal to that of its index value ( Consider 1-based indexing ).
Note: There can be more than one element in the array which have the same value as its index. You need to include every such element's index. Follows 1-based indexing of the array.
Example 1:
Input:
N = 5
Arr[] = {15, 2, 45, 12, 7}
Output: 2
Explanation: Only Arr[2] = 2 exists here.
Example 2:
Input:
N = 1
Arr[] = {1}
Output: 1
Explanation: Here Arr[1] = 1 exists.
Your Task:
You don't need to read input or print anything. Your task is to complete the function valueEqualToIndex() which takes the array of integers arr[] and n as parameters and returns an array of indices where the given conditions are satisfied. When there is no such element exists then return an empty array of length 0.
Expected Time Complexity: O(N)
Using Approach: Iterative
Time complexity: O(N);
Explain this question: 1) hame compare krna hai ki array ke ith Index ki value agar us index ke barabar hai to use ek new Array list me add krke return kr dena hai array list.
2)Suppose hamara Array hai 12 2 13 432 now index start hota hai logically 0 se lekin ab ham traverse karenge to kya 12 hamara equal hai 0+1(zeroth index + 1) yani ki 0th index ki value kya index number jo ki 1 ke hai uske barabar hai ? nhi yaha hamara index 1 hai lekin value 0th index ki 15 hai
3)2nd Iteration: kya 1st index ki value jo ki 2 hai wo i+1 index number mtlb 2 ke barabar hai ? element 2 is equal equal index 2 yes its true then will add this element on new ArrayList then return the ArrayList created by me.
4) ham loop 0 se start karenge kyu ki by default Array ki indexing 0 se hi hoti hai.
//User function Template for Java
class Solution {
ArrayList<Integer> valueEqualToIndex(int arr[], int n) {
// code here
ArrayList<Integer> result = new ArrayList<Integer>();
for(int i = 0; i < arr.length; i++){
if (arr[i] == i + 1) {
result.add(arr[i]);
}
}return result;
}
}
Comments
Post a Comment