Arrays_Detailed
Arrays_Detailed
java
import java.util.HashSet;
int maxLength = 0;
for (int num : nums) {
if (!set.contains(num - 1)) {
int current = num;
int count = 1;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\twoSum.java
import java.util.HashMap;
import java.util.Map;
if (result.length == 2) {
// Print the indices
System.out.println("Indices: " + result[0] + " and " + result[1]);
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\RangeSum.java
public class RangeSum {
public static int rangeSum(int[] prefix, int l, int r){
if(l==0)
return prefix[r];
return prefix[r]-prefix[l-1];
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\ThreeSum.java
//import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.List;
//
//public class ThreeSum {
// public static List<List<Integer>> threeSum(int[] nums) {
// List<List<Integer>> result = new ArrayList<>();
// Arrays.sort(nums); // Sort the array to handle duplicates easily
//
// int n = nums.length;
// for (int i = 0; i < n - 2; i++) {
// // Skip duplicates for the first number
// if (i > 0 && nums[i] == nums[i - 1]) continue;
//
// for (int j = i + 1; j < n - 1; j++) {
// // Skip duplicates for the second number
// if (j > i + 1 && nums[j] == nums[j - 1]) continue;
//
// for (int k = j + 1; k < n; k++) {
// // Skip duplicates for the third number
// if (k > j + 1 && nums[k] == nums[k - 1]) continue;
//
// if (nums[i] + nums[j] + nums[k] == 0) {
// result.add(Arrays.asList(nums[i], nums[j], nums[k]));
// }
// }
// }
// }
//
// return result;
// }
//
// public static void main(String[] args) {
// int[] nums = {-1, 0, 1, 2, -1, -4};
// List<List<Integer>> triplets = threeSum(nums);
//
// System.out.println("Triplets:");
// for (List<Integer> triplet : triplets) {
// System.out.print(triplet+" ");
// }
// }
//}
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
if (sum == 0) {
result.add(Arrays.asList(nums[i], nums[left], nums[right]));
left++;
right--;
Page 1 of 2
File - C:\Users\USER\IdeaProjects\Arrays\src\ThreeSum.java
// Skip duplicates for the second and third elements
while (left < right && nums[left] == nums[left - 1]) left++;
while (left < right && nums[right] == nums[right + 1]) right--;
} else if (sum < 0) {
left++; // Increase the sum
} else {
right--; // Decrease the sum
}
}
}
return result;
}
System.out.println("Triplets:");
for (List<Integer> triplet : triplets) {
System.out.println(triplet);
}
}
}
Page 2 of 2
File - C:\Users\USER\IdeaProjects\Arrays\src\KthLargest.java
import java.util.PriorityQueue;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\Palindrome.java
public class Palindrome {
public static boolean isPal(int[] nums){
int l=0,r=nums.length-1;
while(l<r){
if(nums[l]!=nums[r]){
return false;
}
l++;
r--;
}
return true;
}
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\KthSmallest.java
//Kth Smallest Code
import java.util.PriorityQueue;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\TwoSumSorted.java
public class TwoSumSorted {
public static int[] twoSum(int[] nums,int target){
int l=0,r=nums.length-1;
while (l<r){
int sum=nums[l]+nums[r];
if(sum==target){
return new int[]{l,r};
}
else if(sum<target){
l++;
}
else{
r--;
}
}
return new int[]{-1,-1};//no solution
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\MissingNumber.java
public class MissingNumber {
public static int findMissing(int[] nums){
int n=nums.length+1;
int total=n*(n+1)/2;
for(int num:nums){
total-=num;
}
return total;
}
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\FrequencyCount.java
import java.util.HashMap;
import java.util.Map;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\InsertInterval.java
import java.util.*;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\MaxSubarraySum.java
public class MaxSubarraySum {
public static int maxsubarray(int[] nums){
int maxi=nums[0];
int curr=nums[0];
for (int i = 1; i < nums.length; i++) {
curr=Math.max(nums[i],curr+nums[i]);
maxi=Math.max(maxi,curr);
}
return maxi;
}
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\MaxSumSubarray.java
public class MaxSumSubarray {
public static int maxSum(int[] nums,int k){
int maxSum=0,windowSum=0;
for (int i = 0; i < k; i++) {
windowSum+=nums[i];
}
maxSum=windowSum;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\MergeIntervals.java
import java.util.*;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\PrefixSumArray.java
public class PrefixSumArray {
public static int[] prefixSum(int[] nums){
int n=nums.length;
int[] prefix=new int[n];
prefix[0]=nums[0];
for (int i = 1; i <n; i++) {
prefix[i]=prefix[i-1]+nums[i];
}
return prefix;
}
public static void main(String[] args) {
int[] nums={1,2,3,4,5};
int[] result=prefixSum(nums);
for(int sum:result){
System.out.print(sum+" ");
}
}
}
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\ArrayDuplicates.java
import java.util.HashMap;
import java.util.ArrayList;
import java.util.List;
import java.util.TreeMap;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\AverageSubarray.java
import java.lang.reflect.Array;
import java.util.Arrays;
}
}
return result;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\MajorityElement.java
public class MajorityElement {
public static int majorityElement(int[] nums) {
int candidate = nums[0], count = 0;
for (int num : nums) {
if (count == 0) {
candidate = num;
}
count += (num == candidate) ? 1 : -1;
}
return candidate;
}
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\NextPermutation.java
import java.util.Arrays;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\EmployeeFreeTime.java
import java.util.*;
return freeTime;
}
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\MergeSortedArray.java
import java.util.Arrays;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\PositiveNegative.java
import java.util.*;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\RemoveDuplicates.java
public class RemoveDuplicates {
public static int removeDuplicates(int[] nums){
if(nums.length==0)
return 0;
int unique=0;
for (int i = 1; i <nums.length ; i++) {
if(nums[i]!=nums[unique]){
unique++;
nums[unique]=nums[i];
}
}
return unique+1;
}
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\StringDuplicates.java
import java.util.*;
// Iterate over the string and update the counts in the HashMap
for (char ch : str.toCharArray()) {
// If the character already exists in the map, increment its count
countMap.put(ch, countMap.getOrDefault(ch, 0) + 1);
}
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\RearrangeElements.java
import java.util.Arrays;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\TrappingRainWater.java
public class TrappingRainWater {
public static int trap(int[] height) {
int left = 0, right = height.length - 1;
int leftMax = 0, rightMax = 0;
int waterTrapped = 0;
return waterTrapped;
}
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\UnionIntersection.java
import java.util.*;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\MaximumSubarraySum.java
public class MaximumSubarraySum {
public static int maxSubarraySum(int[] nums){
int maxSum=Integer.MIN_VALUE,cursum=0;
for(int num:nums){
cursum=Math.max(num,cursum+num);
maxSum=Math.max(maxSum,cursum);
}
return maxSum;
}
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\MaxProductSubarray.java
public class MaxProductSubarray {
public static int maxProduct(int[] nums) {
int max = nums[0], min = nums[0], result = nums[0];
for (int i = 1; i < nums.length; i++) {
if (nums[i] < 0) {
int temp = max;
max = min;
min = temp;
}
max = Math.max(nums[i], max * nums[i]);
min = Math.min(nums[i], min * nums[i]);
result = Math.max(result, max);
}
return result;
}
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\MinSizeSubarraySum.java
public class MinSizeSubarraySum {
public static int minSubarrayLen(int s,int[] nums){
int n=nums.length;
int l=0,sum=0,minLen=Integer.MAX_VALUE;
for (int r = 0; r < n; r++) {
sum+=nums[r];
while(sum>=s){
minLen=Math.min(minLen,r-l+1);
sum-=nums[l++];
}
return minLen==Integer.MIN_VALUE? 0: minLen;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\PairWithDifference.java
//import java.util.Arrays;
//
//public class PairWithDifference {
// public static int[] hasPairWithDiff(int[] nums, int k) {
// Arrays.sort(nums); // Sort the array
// int left = 0, right = 1;
//
// while (right < nums.length) {
// int diff = nums[right] - nums[left];
//
// if (diff == k && left != right) {
// return new int[] {nums[left],nums[right]};
// } else if (diff < k) {
// right++; // Increase the larger number
// } else {
// left++; // Increase the smaller number
// }
// }
//
// return new int[]{};
// }
//
// public static void main(String[] args) {
// int[] nums = {5, 20, 3, 2, 50, 80};
// int k = 454;
//
// int[] result=hasPairWithDiff(nums, k); // Output: true
// if (result.length > 0) {
// System.out.println("Pair with given difference: " + result[0] + ", " + result[1]);
// } else {
// System.out.println("No valid pair found.");
// }
// }
//}
import java.util.HashSet;
public class PairWithDifference {
public static int[] findPairWithDiff(int[] nums, int k) {
HashSet<Integer> set = new HashSet<>();
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\SearchRotatedArray.java
public class SearchRotatedArray {
public static int search(int[] nums, int target) {
int left = 0, right = nums.length - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (nums[mid] == target) return mid;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\SubarraySumEqualsK.java
import java.util.HashMap;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\FindMaxRotatedArray.java
public class FindMaxRotatedArray {
public static int findMax(int[] nums) {
int left = 0, right = nums.length - 1;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\FindMinRotatedArray.java
public class FindMinRotatedArray {
public static int findMin(int[] nums) {
int left = 0, right = nums.length - 1;
while (left < right) {
int mid = left + (right - left) / 2;
if (nums[mid] > nums[right]) {
left = mid + 1;
} else {
right = mid;
}
}
return nums[left];
}
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\IntervalIntersection.java
import java.util.*;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\SlidingWindowMaximum.java
import java.util.Deque;
import java.util.LinkedList;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\SubarrayWithGivenSum.java
import java.util.Arrays;
import java.util.HashMap;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\LargestNonAdjacentSum.java
public class LargestNonAdjacentSum {
public static int maxNonAdjacentSum(int[] nums) {
int include = nums[0], exclude = 0;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\ContainerWithMostWater.java
public class ContainerWithMostWater {
public static int maxArea(int[] height) {
int left = 0, right = height.length - 1;
int maxArea = 0;
return maxArea;
}
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\LargestSubarrayEqual01.java
import java.util.HashMap;
}
else{
map.put(c,i);
}
}
return maxLen;
}
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\LongestUniqueSubstring.java
import java.util.HashSet;
}
set.add(s.charAt(end));
maxi=Math.max(maxi,end-start+1);
}
return maxi;
}
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\MaxCircularSumSubArray.java
//public class MaxCircularSumSubArray {
//
// static int maxCircularSum(int arr[], int n)
// {
// int res = arr[0];
//
// for(int i = 0; i < n; i++)
// {
// int curr_max = arr[i];
// int curr_sum = arr[i];
//
// for(int j = 1; j < n; j++)
// {
// int index = (i + j) % n;
//
// curr_sum += arr[index];
//
// curr_max = Math.max(curr_max, curr_sum);
// }
//
// res = Math.max(res, curr_max);
// }
// return res;
// }
//
//
// public static void main(String args[])
// {
// int arr[] = {5, -2, 3, 4}, n = 4;
//
// System.out.println(maxCircularSum(arr, n));
//
// }
//
//}
//public class MaxCircularSumSubArray {
//
// // Kadane's algorithm to find the maximum subarray sum
// public static int kadane(int[] nums) {
// int maxSoFar = nums[0];
// int currentMax = nums[0];
//
// for (int i = 1; i < nums.length; i++) {
// currentMax = Math.max(nums[i], currentMax + nums[i]);
// maxSoFar = Math.max(maxSoFar, currentMax);
// }
//
// return maxSoFar;
// }
//
// public static int maxCircularSubarraySum(int[] nums) {
// int totalSum = 0;
// int n = nums.length;
//
// // Step 1: Find the normal maximum subarray sum using Kadane's algorithm
// int maxSubarraySum = kadane(nums);
//
// // Step 2: Find the total sum of the array and the minimum subarray sum
// for (int i = 0; i < n; i++) {
// totalSum += nums[i];
// nums[i] = -nums[i]; // Invert the array to find minimum subarray sum
// }
//
// // Step 3: Find the minimum subarray sum using Kadane's algorithm on the negated array
// int minSubarraySum = kadane(nums);
Page 1 of 2
File - C:\Users\USER\IdeaProjects\Arrays\src\MaxCircularSumSubArray.java
//
// // Step 4: Calculate the maximum circular subarray sum
// // If the total sum minus the minimum sum equals 0, it means all numbers are negative.
// if (totalSum == -minSubarraySum) {
// return maxSubarraySum; // No valid circular sum, return max subarray sum
// }
//
// // Return the maximum of normal max subarray and circular max subarray
// return Math.max(maxSubarraySum, totalSum + minSubarraySum);
// }
//
// public static void main(String[] args) {
// int[] nums = {8, -8, 9, -9, 10, -11, 12};
// System.out.println("Maximum Circular Subarray Sum: " + maxCircularSubarraySum(nums)); // Outp
// }
//}
int totalSum = 0;
for (int i = 0; i < nums.length; i++) {
totalSum += nums[i];
nums[i] = -nums[i];
}
Page 2 of 2
File - C:\Users\USER\IdeaProjects\Arrays\src\LongestSubarrayWithSumK.java
import java.util.HashMap;
if (sum == k) {
maxLength = i + 1;
}
if (map.containsKey(sum - k)) {
maxLength = Math.max(maxLength, i - map.get(sum - k));
}
map.putIfAbsent(sum, i);
}
return maxLength;
}
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\LongestSubstringDistinct.java
import java.util.HashMap;
}
start++;
}
maxi=Math.max(maxi,end-start+1);
}
return maxi;
}
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\MaxLengthPositiveProduct.java
public class MaxLengthPositiveProduct {
public static int getMaxLen(int[] nums) {
int positive = 0, negative = 0, maxLength = 0;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\MinArrowsToBurstBalloons.java
import java.util.*;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\CountNonOverlappingIntervals.java
import java.util.*;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\Array_Basic\Delete.java
package Array_Basic;
import java.util.Arrays;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\Array_Basic\Insert.java
package Array_Basic;
import java.util.Arrays;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\Array_Basic\MaxMin.java
package Array_Basic;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\Array_Basic\Reverse.java
package Array_Basic;
import java.util.Arrays;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\Array_Basic\BubbleSort.java
package Array_Basic;
import java.util.Arrays;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\Array_Basic\RotateArray.java
package Array_Basic;
import java.util.Arrays;
// Helper method to reverse elements of the array between start and end indices
private static void reverse(int[] nums, int start, int end) {
while (start < end) {
int temp = nums[start];
nums[start] = nums[end];
nums[end] = temp;
start++;
end--;
}
}
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\Array_Basic\BinarySearch.java
package Array_Basic;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\Array_Basic\KLargestElements.java
package Array_Basic;
import java.util.Arrays;
import java.util.PriorityQueue;
Page 1 of 1
File - C:\Users\USER\IdeaProjects\Arrays\src\Array_Basic\KSmallestElements.java
package Array_Basic;
import java.util.Arrays;
import java.util.PriorityQueue;
Page 1 of 1