Subarray with Given Sum Last Updated : 30 Dec, 2024 Comments Improve Suggest changes Like Article Like Report Try it on GfG Practice Given a 1-based indexing array arr[] of non-negative integers and an integer sum. You mainly need to return the left and right indexes(1-based indexing) of that subarray. In case of multiple subarrays, return the subarray indexes which come first on moving from left to right. If no such subarray exists return an array consisting of element -1.Examples: Input: arr[] = [15, 2, 4, 8, 9, 5, 10, 23], target = 23Output: [2, 5]Explanation: Sum of subarray arr[2...5] is 2 + 4 + 8 + 9 = 23.Input: arr[] = [1, 10, 4, 0, 3, 5], target = 7Output: [3, 5]Explanation: Sum of subarray arr[3...5] is 4 + 0 + 3 = 7.Input: arr[] = [1, 4], target = 0Output: [-1]Explanation: There is no subarray with 0 sum.Table of Content[Naive Approach] Using Nested loop - O(n2) Time and O(1) Space [Expected Approach] Sliding Window - O(n) Time and O(1) Space[Alternate Approach] Hashing + Prefix Sum - O(n) Time and O(n) Space[Naive Approach] Using Nested loop - O(n^2) Time and O(1) Space The very basic idea is to use a nested loop where the outer loop picks a starting element, and the inner loop calculates the cumulative sum of elements starting from this element. For each starting element, the inner loop iterates through subsequent elements and adding each element to the cumulative sum until the given sum is found or the end of the array is reached. If at any point the cumulative sum equals the given sum, then return starting and ending indices (1-based). If no such sub-array is found after all iterations, then return -1. C++ #include <iostream> #include <vector> using namespace std; // Function to find a continuous sub-array which adds up to // a given number. vector<int> subarraySum(vector<int> arr, int target) { vector<int> res; int n = arr.size(); // Pick a starting point for a subarray for (int s = 0; s < n; s++) { int curr = 0; // Consider all ending points // for the picked starting point for (int e = s; e < n; e++) { curr += arr[e]; if (curr == target) { res.push_back(s + 1); res.push_back(e + 1); return res; } } } // If no subarray is found return {-1}; } int main() { vector<int> arr = {15, 2, 4, 8, 9, 5, 10, 23}; int target = 23; vector<int> res = subarraySum(arr, target); for (int ele : res) cout << ele << " "; return 0; } Java import java.util.ArrayList; import java.util.List; class GfG { // Function to find a continuous sub-array which adds up to // a given number. static ArrayList<Integer> subarraySum(int[] arr, int target) { ArrayList<Integer> res = new ArrayList<>(); int n = arr.length; // Pick a starting point for a subarray for (int s = 0; s < n; s++) { int curr = 0; // Consider all ending points // for the picked starting point for (int e = s; e < n; e++) { curr += arr[e]; if (curr == target) { res.add(s + 1); res.add(e + 1); return res; } } } // If no subarray is found res.add(-1); return res; } public static void main(String[] args) { int[] arr = {15, 2, 4, 8, 9, 5, 10, 23}; int target = 23; ArrayList<Integer> res = subarraySum(arr, target); for (int ele : res) System.out.print(ele + " "); } } Python # Function to find a continuous sub-array which adds up to # a given number. def subarraySum(arr, target): res = [] n = len(arr) # Pick a starting point for a subarray for s in range(n): curr = 0 # Consider all ending points # for the picked starting point for e in range(s, n): curr += arr[e] if curr == target: res.append(s + 1) res.append(e + 1) return res # If no subarray is found return [-1] if __name__ == "__main__": arr = [15, 2, 4, 8, 9, 5, 10, 23] target = 23 res = subarraySum(arr, target) for ele in res: print(ele, end=" ") C# using System; using System.Collections.Generic; class GfG { // Function to find a continuous sub-array which adds up to // a given number. static List<int> subarraySum(int[] arr, int target) { List<int> res = new List<int>(); int n = arr.Length; // Pick a starting point for a subarray for (int s = 0; s < n; s++) { int curr = 0; // Consider all ending points // for the picked starting point for (int e = s; e < n; e++) { curr += arr[e]; if (curr == target) { res.Add(s + 1); res.Add(e + 1); return res; } } } // If no subarray is found res.Add(-1); return res; } static void Main() { int[] arr = {15, 2, 4, 8, 9, 5, 10, 23}; int target = 23; List<int> res = subarraySum(arr, target); foreach (var ele in res) Console.Write(ele + " "); } } JavaScript // Function to find a continuous sub-array which adds up to // a given number. function subarraySum(arr, target) { let res = []; let n = arr.length; // Pick a starting point for a subarray for (let s = 0; s < n; s++) { let curr = 0; // Consider all ending points // for the picked starting point for (let e = s; e < n; e++) { curr += arr[e]; if (curr === target) { res.push(s + 1); res.push(e + 1); return res; } } } // If no subarray is found return [-1]; } // Driver Code let arr = [15, 2, 4, 8, 9, 5, 10, 23]; let target = 23; let res = subarraySum(arr, target); console.log(res.join(' ')); Output2 5 [Expected Approach] Sliding Window - O(n) Time and O(1) SpaceThe idea is simple, as we know that all the elements in subarray are positive so, If a subarray has sum greater than the given sum then there is no possibility that adding elements to the current subarray will be equal to the given sum. So the Idea is to use a similar approach to a sliding window. Start with an empty window add elements to the window while the current sum is less than sum If the sum is greater than sum, remove elements from the start of the current window.If current sum becomes same as sum, return the result C++ #include <iostream> #include <vector> using namespace std; // Function to find a continuous sub-array which adds up to // a given number. vector<int> subarraySum(vector<int>& arr, int target) { // Initialize window int s = 0, e = 0; vector<int> res; int curr = 0; for (int i = 0; i < arr.size(); i++) { curr += arr[i]; // If current sum becomes more or equal, // set end and try adjusting start if (curr >= target) { e = i; // While current sum is greater, // remove starting elements of current window while (curr > target && s < e) { curr -= arr[s]; ++s; } // If we found a subraay if (curr == target) { res.push_back(s + 1); res.push_back(e + 1); return res; } } } // If no subarray is found return {-1}; } int main() { vector<int> arr = {15, 2, 4, 8, 9, 5, 10, 23}; int target = 23; vector<int> res = subarraySum(arr, target); for (int ele : res) cout << ele << " "; return 0; } Java import java.util.ArrayList; import java.util.List; class GfG { // Function to find a continuous sub-array which adds up to // a given number. static ArrayList<Integer> subarraySum(int[] arr, int target) { // Initialize window int s = 0, e = 0; ArrayList<Integer> res = new ArrayList<>(); int curr = 0; for (int i = 0; i < arr.length; i++) { curr += arr[i]; // If current sum becomes more or equal, // set end and try adjusting start if (curr >= target) { e = i; // While current sum is greater, // remove starting elements of current window while (curr > target && s < e) { curr -= arr[s]; ++s; } // If we found a subarray if (curr == target) { res.add(s + 1); res.add(e + 1); return res; } } } // If no subarray is found res.add(-1); return res; } public static void main(String[] args) { int[] arr = {15, 2, 4, 8, 9, 5, 10, 23}; int target = 23; ArrayList<Integer> res = subarraySum(arr, target); for (int ele : res) System.out.print(ele + " "); } } Python # Function to find a continuous sub-array which adds up to # a given number. def subarraySum(arr, target): # Initialize window s, e = 0, 0 res = [] curr = 0 for i in range(len(arr)): curr += arr[i] # If current sum becomes more or equal, # set end and try adjusting start if curr >= target: e = i # While current sum is greater, # remove starting elements of current window while curr > target and s < e: curr -= arr[s] s += 1 # If we found a subarray if curr == target: res.append(s + 1) res.append(e + 1) return res # If no subarray is found return [-1] if __name__ == "__main__": arr = [15, 2, 4, 8, 9, 5, 10, 23] target = 23 res = subarraySum(arr, target) print(" ".join(map(str, res))) C# using System; using System.Collections.Generic; class GfG { // Function to find a continuous sub-array which adds up to // a given number. static List<int> subarraySum(int[] arr, int target) { // Initialize window int s = 0, e = 0; List<int> res = new List<int>(); int curr = 0; for (int i = 0; i < arr.Length; i++) { curr += arr[i]; // If current sum becomes more or equal, // set end and try adjusting start if (curr >= target) { e = i; // While current sum is greater, // remove starting elements of current window while (curr > target && s < e) { curr -= arr[s]; ++s; } // If we found a subarray if (curr == target) { res.Add(s + 1); res.Add(e + 1); return res; } } } // If no subarray is found res.Add(-1); return res; } static void Main() { int[] arr = {15, 2, 4, 8, 9, 5, 10, 23}; int target = 23; List<int> res = subarraySum(arr, target); foreach (var ele in res) Console.Write(ele + " "); } } JavaScript // Function to find a continuous sub-array which adds up to // a given number. function subarraySum(arr, target) { // Initialize window let s = 0, e = 0; let res = []; let curr = 0; for (let i = 0; i < arr.length; i++) { curr += arr[i]; // If current sum becomes more or equal, // set end and try adjusting start if (curr >= target) { e = i; // While current sum is greater, // remove starting elements of current window while (curr > target && s < e) { curr -= arr[s]; s++; } // If we found a subarray if (curr === target) { res.push(s + 1); res.push(e + 1); return res; } } } // If no subarray is found return [-1]; } // Driver Code let arr = [15, 2, 4, 8, 9, 5, 10, 23]; let target = 23; let res = subarraySum(arr, target); console.log(res.join(' ')); Output2 5 [Alternate Approach] Hashing + Prefix Sum - O(n) Time and O(n) SpaceThe above solution does not work for arrays with negative numbers. To handle all cases, we use hashing and prefix sum. The idea is to store the sum of elements of every prefix of the array in a hashmap, i.e, every index stores the sum of elements up to that index hashmap. So to check if there is a subarray with a sum equal to target, check for every index i, and sum up to that index as currSum. If there is a prefix with a sum equal to (currSum – target), then the subarray with the given sum is found. To know more about the implementation, please refer Subarray with Given Sum – Handles Negative Numbers. Comment More infoAdvertise with us Next Article Rearrange an array such that arr[i] = i K kartik Follow Improve Article Tags : DSA Arrays Amazon Google Morgan Stanley Facebook Zoho Visa FactSet subarray sliding-window subarray-sum +8 More Practice Tags : AmazonFacebookFactSetGoogleMorgan StanleyVisaZohoArrayssliding-window +5 More Similar Reads Array Data Structure Complete Guide to ArraysLearn more about Array in DSA Self Paced CoursePractice Problems on ArraysTop Quizzes on Arrays What is Array?An array is a collection of items stored at contiguous memory locations. The idea is to store multiple items of the same type together. This makes it easier to calcul 3 min read What is Array? Array is a linear data structure where all elements are arranged sequentially. It is a collection of elements of same data type stored at contiguous memory locations. For simplicity, we can think of an array as a flight of stairs where on each step is placed a value (let's say one of your friends). 2 min read Getting Started with Array Data Structure Array is a collection of items of the same variable type that are stored at contiguous memory locations. It is one of the most popular and simple data structures used in programming. Basic terminologies of ArrayArray Index: In an array, elements are identified by their indexes. Array index starts fr 14 min read Applications, Advantages and Disadvantages of Array Array is a linear data structure that is a collection of data elements of same types. Arrays are stored in contiguous memory locations. It is a static data structure with a fixed size. Applications of Array Data Structure:Arrays mainly have advantages like random access and cache friendliness over o 2 min read Subarrays, Subsequences, and Subsets in Array What is a Subarray?A subarray is a contiguous part of array, i.e., Subarray is an array that is inside another array. In general, for an array of size n, there are n*(n+1)/2 non-empty subarrays. For example, Consider the array [1, 2, 3, 4], There are 10 non-empty sub-arrays. The subarrays are: (1), 10 min read Basic operations in ArraySearching in ArraySearching is one of the most common operations performed in an array. Array searching can be defined as the operation of finding a particular element or a group of elements in the array. There are several searching algorithms. The most commonly used among them are: Linear Search Binary Search Ternar 4 min read Array Reverse - Complete TutorialGiven an array arr[], the task is to reverse the array. Reversing an array means rearranging the elements such that the first element becomes the last, the second element becomes second last and so on.Examples: Input: arr[] = {1, 4, 3, 2, 6, 5} Output: {5, 6, 2, 3, 4, 1}Explanation: The first elemen 15+ min read Rotate an Array by d - Counterclockwise or LeftGiven an array of integers arr[] of size n, the task is to rotate the array elements to the left by d positions.Examples:Input: arr[] = {1, 2, 3, 4, 5, 6}, d = 2Output: {3, 4, 5, 6, 1, 2}Explanation: After first left rotation, arr[] becomes {2, 3, 4, 5, 6, 1} and after the second rotation, arr[] bec 15+ min read Array after K RotationsGiven an array arr[] and an integer k, rotate the array in place k times to the right (clockwise). In each rotation, the last element moves to the front, and all other elements shift one position to the right. Modify the array in place, do not return anything.Examples : Input: arr[] = [1, 2, 3, 4, 5 12 min read Search, Insert, and Delete in an Unsorted Array | Array OperationsIn this post, a program to search, insert, and delete operations in an unsorted array is discussed.Search Operation:In an unsorted array, the search operation can be performed by linear traversal from the first element to the last element. Coding implementation of the search operation:C++// C++ prog 15+ min read Search, Insert, and Delete in an Sorted Array | Array OperationsHow to Search in a Sorted Array?In a sorted array, the search operation can be performed by using binary search.Below is the implementation of the above approach:C++// C++ program to implement binary search in sorted array #include <bits/stdc++.h> using namespace std; int binarySearch(int arr[ 15+ min read Array Sorting - Practice ProblemsSorting an array means arranging the elements of the array in a certain order. Generally sorting in an array is done to arrange the elements in increasing or decreasing order. Problem statement: Given an array of integers arr, the task is to sort the array in ascending order and return it, without u 9 min read Generating All SubarraysGiven an array arr[], the task is to generate all the possible subarrays of the given array.Examples: Input: arr[] = [1, 2, 3]Output: [ [1], [1, 2], [2], [1, 2, 3], [2, 3], [3] ]Input: arr[] = [1, 2]Output: [ [1], [1, 2], [2] ]Iterative ApproachTo generate a subarray, we need a starting index from t 8 min read Easy problems on ArrayLargest three distinct elements in an arrayGiven an array arr[], the task is to find the top three largest distinct integers present in the array.Note: If there are less than three distinct elements in the array, then return the available distinct numbers in descending order.Examples :Input: arr[] = [10, 4, 3, 50, 23, 90]Output: [90, 50, 23] 6 min read Second Largest Element in an ArrayGiven an array of positive integers arr[] of size n, the task is to find second largest distinct element in the array.Note: If the second largest element does not exist, return -1. Examples:Input: arr[] = [12, 35, 1, 10, 34, 1]Output: 34Explanation: The largest element of the array is 35 and the sec 14 min read Move all zeros to end of arrayGiven an array of integers arr[], the task is to move all the zeros to the end of the array while maintaining the relative order of all non-zero elements.Examples: Input: arr[] = [1, 2, 0, 4, 3, 0, 5, 0]Output: arr[] = [1, 2, 4, 3, 5, 0, 0, 0]Explanation: There are three 0s that are moved to the end 15 min read Rearrange array such that even positioned are greater than oddGiven an array arr[], sort the array according to the following relations: arr[i] >= arr[i - 1], if i is even, â 1 <= i < narr[i] <= arr[i - 1], if i is odd, â 1 <= i < nFind the resultant array.[consider 1-based indexing]Examples: Input: arr[] = [1, 2, 2, 1]Output: [1 2 1 2] Expla 9 min read Rearrange an array in maximum minimum form using Two Pointer TechniqueGiven a sorted array of positive integers, rearrange the array alternately i.e first element should be a maximum value, at second position minimum value, at third position second max, at fourth position second min, and so on. Examples: Input: arr[] = {1, 2, 3, 4, 5, 6, 7} Output: arr[] = {7, 1, 6, 2 6 min read Segregate even and odd numbers using Lomutoâs Partition SchemeGiven an array arr[] of integers, segregate even and odd numbers in the array such that all the even numbers should be present first, and then the odd numbers.Examples: Input: arr[] = {7, 2, 9, 4, 6, 1, 3, 8, 5}Output: 2 4 6 8 7 9 1 3 5Input: arr[] = {1, 3, 2, 4, 7, 6, 9, 10}Output: 2 4 6 10 7 1 9 3 6 min read Reversal algorithm for Array rotationGiven an array arr[] of size N, the task is to rotate the array by d position to the left. Examples: Input: arr[] = {1, 2, 3, 4, 5, 6, 7}, d = 2Output: 3, 4, 5, 6, 7, 1, 2Explanation: If the array is rotated by 1 position to the left, it becomes {2, 3, 4, 5, 6, 7, 1}.When it is rotated further by 1 15 min read Print left rotation of array in O(n) time and O(1) spaceGiven an array of size n and multiple values around which we need to left rotate the array. How to quickly print multiple left rotations?Examples : Input : arr[] = {1, 3, 5, 7, 9}k1 = 1k2 = 3k3 = 4k4 = 6Output : 3 5 7 9 17 9 1 3 59 1 3 5 73 5 7 9 1Input : arr[] = {1, 3, 5, 7, 9}k1 = 14 Output : 9 1 15+ min read Sort an array which contain 1 to n valuesWe are given an array that contains 1 to n elements, our task is to sort this array in an efficient way. We are not allowed to simply copy the numbers from 1 to n.Examples : Input : arr[] = {2, 1, 3};Output : {1, 2, 3}Input : arr[] = {2, 1, 4, 3};Output : {1, 2, 3, 4} Native approach - O(n Log n) Ti 7 min read Count Possible TrianglesGiven an unsorted array of positive integers, the task is to find the number of triangles that can be formed with three different array elements as three sides of triangles. For a triangle to be possible from 3 values as sides, the sum of the two values (or sides) must always be greater than the thi 15+ min read Print all Distinct (Unique) Elements in given ArrayGiven an integer array arr[], print all distinct elements from this array. The given array may contain duplicates and the output should contain every element only once.Examples: Input: arr[] = {12, 10, 9, 45, 2, 10, 10, 45}Output: {12, 10, 9, 45, 2}Input: arr[] = {1, 2, 3, 4, 5}Output: {1, 2, 3, 4, 11 min read Unique Number IGiven an array of integers, every element in the array appears twice except for one element which appears only once. The task is to identify and return the element that occurs only once.Examples: Input: arr[] = [2, 3, 5, 4, 5, 3, 4]Output: 2 Explanation: Since 2 occurs once, while other numbers occu 8 min read Leaders in an arrayGiven an array arr[] of size n, the task is to find all the Leaders in the array. An element is a Leader if it is greater than or equal to all the elements to its right side. Note: The rightmost element is always a leader. Examples: Input: arr[] = [16, 17, 4, 3, 5, 2]Output: [17 5 2]Explanation: 17 10 min read Subarray with Given SumGiven a 1-based indexing array arr[] of non-negative integers and an integer sum. You mainly need to return the left and right indexes(1-based indexing) of that subarray. In case of multiple subarrays, return the subarray indexes which come first on moving from left to right. If no such subarray exi 10 min read Intermediate problems on ArrayRearrange an array such that arr[i] = iGiven an array of elements of length n, ranging from 0 to n - 1. All elements may not be present in the array. If the element is not present then there will be -1 present in the array. Rearrange the array such that arr[i] = i and if i is not present, display -1 at that place.Examples: Input: arr[] = 13 min read Alternate Rearrangement of Positives and NegativesAn array contains both positive and negative numbers in random order. Rearrange the array elements so that positive and negative numbers are placed alternatively. A number of positive and negative numbers need not be equal. If there are more positive numbers they appear at the end of the array. If t 11 min read Reorder an array according to given indexesGiven two integer arrays of the same length, arr[] and index[], the task is to reorder the elements in arr[] such that after reordering, each element from arr[i] moves to the position index[i]. The new arrangement reflects the values being placed at their target indices, as described by index[] arra 15+ min read Find the smallest missing numberGiven a sorted array of n distinct integers where each integer is in the range from 0 to m-1 and m > n. Find the smallest number that is missing from the array. Examples: Input: {0, 1, 2, 6, 9}, n = 5, m = 10 Output: 3 Input: {4, 5, 10, 11}, n = 4, m = 12 Output: 0 Input: {0, 1, 2, 3}, n = 4, m = 15 min read Difference Array | Range update query in O(1)You are given an integer array arr[] and a list of queries. Each query is represented as a list of integers where:[1, l, r, x]: Adds x to all elements from arr[l] to arr[r] (inclusive).[2]: Prints the current state of the array.You need to perform the queries in order.Examples : Input: arr[] = [10, 10 min read Stock Buy and Sell â Max 2 Transactions AllowedIn the stock market, a person buys a stock and sells it on some future date. Given the stock prices of n days in an array prices[ ]. Find out the maximum profit a person can make in at most 2 transactions. A transaction is equivalent to (buying + selling) of a stock and a new transaction can start o 15+ min read Smallest subarray with sum greater than a given valueGiven an array arr[] of integers and a number x, the task is to find the smallest subarray with a sum strictly greater than x.Examples:Input: x = 51, arr[] = [1, 4, 45, 6, 0, 19]Output: 3Explanation: Minimum length subarray is [4, 45, 6]Input: x = 100, arr[] = [1, 10, 5, 2, 7]Output: 0Explanation: N 15+ min read Count Inversions of an ArrayGiven an integer array arr[] of size n, find the inversion count in the array. Two array elements arr[i] and arr[j] form an inversion if arr[i] > arr[j] and i < j.Note: Inversion Count for an array indicates that how far (or close) the array is from being sorted. If the array is already sorted 15+ min read Merge Two Sorted Arrays Without Extra SpaceGiven two sorted arrays a[] and b[] of size n and m respectively, the task is to merge both the arrays and rearrange the elements such that the smallest n elements are in a[] and the remaining m elements are in b[]. All elements in a[] and b[] should be in sorted order.Examples: Input: a[] = [2, 4, 15+ min read Majority ElementGiven an array arr[], return the element that appears more than n / 2 times, where n is the array size. If no such element exists, return -1.Examples:Input: arr[] = [1, 1, 2, 1, 3, 5, 1]Output: 1Explanation: Element 1 appears 4 times, which is more than {\scriptsize \frac{7}{2} = 3.5} so it is the m 15 min read Two Pointers TechniqueTwo pointers is really an easy and effective technique that is typically used for Two Sum in Sorted Arrays, Closest Two Sum, Three Sum, Four Sum, Trapping Rain Water and many other popular interview questions. Given a sorted array arr (sorted in ascending order) and a target, find if there exists an 11 min read 3 Sum - Triplet Sum in ArrayGiven an array arr[] of size n and an integer sum, the task is to check if there is a triplet in the array which sums up to the given target sum.Examples: Input: arr[] = [1, 4, 45, 6, 10, 8], target = 13Output: true Explanation: The triplet [1, 4, 8] sums up to 13Input: arr[] = [1, 2, 4, 3, 6, 7], t 15 min read Equilibrium IndexGiven an array arr[] of size n, the task is to return an equilibrium index (if any) or -1 if no equilibrium index exists. The equilibrium index of an array is an index such that the sum of all elements at lower indexes equals the sum of all elements at higher indexes. Note: When the index is at the 15 min read Hard problems on ArrayMO's Algorithm (Query Square Root Decomposition) | Set 1 (Introduction)Let us consider the following problem to understand MO's Algorithm. We are given an array and a set of query ranges, we are required to find the sum of every query range.Example: Input: arr[] = {1, 1, 2, 1, 3, 4, 5, 2, 8}; query[] = [0, 4], [1, 3] [2, 4]Output: Sum of arr[] elements in range [0, 4] 15+ min read Square Root (Sqrt) Decomposition AlgorithmSquare Root Decomposition Technique is one of the most common query optimization techniques used by competitive programmers. This technique helps us to reduce Time Complexity by a factor of sqrt(N) The key concept of this technique is to decompose a given array into small chunks specifically of size 15+ min read Sparse TableSparse table concept is used for fast queries on a set of static data (elements do not change). It does preprocessing so that the queries can be answered efficiently.Range Minimum Query Using Sparse TableYou are given an integer array arr of length n and an integer q denoting the number of queries. 15+ min read Range sum query using Sparse TableWe have an array arr[]. We need to find the sum of all the elements in the range L and R where 0 <= L <= R <= n-1. Consider a situation when there are many range queries. Examples: Input : 3 7 2 5 8 9 query(0, 5) query(3, 5) query(2, 4) Output : 34 22 15Note : array is 0 based indexed and q 8 min read Range LCM QueriesGiven an array arr[] of integers of size N and an array of Q queries, query[], where each query is of type [L, R] denoting the range from index L to index R, the task is to find the LCM of all the numbers of the range for all the queries.Examples: Input: arr[] = {5, 7, 5, 2, 10, 12 ,11, 17, 14, 1, 4 15+ min read Jump Game - Minimum Jumps to Reach EndGiven an array arr[] of non-negative numbers. Each number tells you the maximum number of steps you can jump forward from that position.For example:If arr[i] = 3, you can jump to index i + 1, i + 2, or i + 3 from position i.If arr[i] = 0, you cannot jump forward from that position.Your task is to fi 15+ min read Space optimization using bit manipulationsThere are many situations where we use integer values as index in array to see presence or absence, we can use bit manipulations to optimize space in such problems.Let us consider below problem as an example.Given two numbers say a and b, mark the multiples of 2 and 5 between a and b using less than 12 min read Maximum value of Sum(i*arr[i]) with array rotations allowedGiven an array arr[], the task is to determine the maximum possible value of the expression i*arr[i] after rotating the array any number of times (including zero).Note: In each rotation, every element of the array shifts one position to the right, and the last element moves to the front.Examples : I 12 min read Construct an array from its pair-sum arrayGiven a pair-sum array arr[], construct the original array res[] where each element in arr represents the sum of a unique pair from res in a specific order, starting with res[0] + res[1], then res[0] + res[2], and so on through all combinations where the first index is less than the second. Note: Th 5 min read Maximum equilibrium sum in an arrayGiven an array arr[]. Find the maximum value of prefix sum which is also suffix sum for index i in arr[].Examples : Input : arr[] = {-1, 2, 3, 0, 3, 2, -1}Output : 4Explanation : Prefix sum of arr[0..3] = Suffix sum of arr[3..6]Input : arr[] = {-3, 5, 3, 1, 2, 6, -4, 2}Output : 7Explanation : Prefix 11 min read Smallest Difference Triplet from Three arraysThree arrays of same size are given. Find a triplet such that maximum - minimum in that triplet is minimum of all the triplets. A triplet should be selected in a way such that it should have one number from each of the three given arrays. If there are 2 or more smallest difference triplets, then the 9 min read Top 50 Array Coding Problems for Interviews Array is one of the most widely used data structure and is frequently asked in coding interviews to the problem solving skills. The following list of 50 array coding problems covers a range of difficulty levels, from easy to hard, to help candidates prepare for interviews.Easy ProblemsSecond Largest 2 min read Like