Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file.
Empty file.
98 changes: 0 additions & 98 deletions DS_04_Array_and_Questions/array.txt

This file was deleted.

46 changes: 46 additions & 0 deletions DS_04_Array_and_Strings/Arrays_and_Questions/MajorityElement.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package DS_04_Array_and_Strings.Arrays_and_Questions;

public class MajorityElement {

// gfg link - https://practice.geeksforgeeks.org/problems/majority-element-1587115620/1
// gfg solution
static int majorityElement(int arr[], int size){
int ansIndex = 0;
int count = 1;
for(int i = 1 ; i < arr.length ; i++){
if(arr[i] == arr[ansIndex]){
count ++;
}else{
count--;
}
if(count == 0){
count = 1;
ansIndex = i;
}
}

int major = arr[ansIndex];
int ans = 0;
for(int i = 0 ; i < arr.length ; i++){
if(arr[i] == major) ans++;
}

return ans > size/2 ? major: -1;
}

// leetcode link - https://leetcode.com/problems/majority-element/
// leetcode solution
public int majorityElement(int[] arr) {
int ansIndex = 0, cnt = 1;
for(int i = 1 ; i < arr.length ; i++){
if(arr[i]== arr[ansIndex]) cnt++;
else cnt--;
if(cnt == 0) {
cnt = 1;
ansIndex = i;
}
}
return arr[ansIndex];
}

}
14 changes: 14 additions & 0 deletions DS_04_Array_and_Strings/Arrays_and_Questions/Max_Till_i.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package DS_04_Array_and_Strings.Arrays_and_Questions;

import java.util.Arrays;

public class Max_Till_i {
public static void main(String[] args) {
int arr[] = { 1, 0, 5, 4, 6, 8 };

for (int i = 1; i < arr.length; i++) {
arr[i] = Math.max(arr[i-1], arr[i]);
}
System.out.println(Arrays.toString(arr));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package DS_04_Array_and_Strings.Arrays_and_Questions;

public class MaximunSumSubArray {

// kadane's algorithm
static int maxSumSubArray(int[] arr){
int maxSum = 0;
int currentSum = 0;
for(int i = 0 ; i < arr.length ; i++){
currentSum = currentSum + arr[i];
if(currentSum > maxSum){
maxSum = currentSum;
}
if(currentSum < 0){
currentSum = 0;
}
}
return maxSum;

}

// gfg link : https://practice.geeksforgeeks.org/problems/kadanes-algorithm-1587115620/1
long maxSubarraySum(int arr[], int n){
long maxSum = 0;
long currentSum = 0;
for(int i = 0 ; i < arr.length ; i++){
currentSum = currentSum + arr[i];
if(currentSum > maxSum){
maxSum = currentSum;
}
if(currentSum < 0){
currentSum = 0;
}
}
return maxSum > 0 ? maxSum : findMax(arr);
}

long findMax(int[] arr){
long max = arr[0];
for(int i = 0 ; i < arr.length ; i++){
if(arr[i] > max) max = arr[i];
}
return max;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package DS_04_Array_and_Strings.Arrays_and_Questions.MultiDimensionalArray;

public class SpiralPrint {
public static void main(String[] args) {
int[][] arr = {
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 }
};
spiralPrint(arr);
}

static void spiralPrint(int[][] arr) {
int row = arr.length;
int col = arr[0].length;
int total = row * col;
int count = 0;

int startCol = 0;
int startRow = 0;
int endCol = col - 1;
int endRow = row - 1;

while (count < total) {
// print first row
for (int i = startCol; i <= endCol; i++) {
System.out.print(arr[startRow][i] + " ");
count++;
}
startRow++;

// print last column
for (int i = startRow; i <= endRow; i++) {
System.out.print(arr[i][endCol] + " ");
count++;
}
endCol--;

// print last row
for (int i = endCol; i >= startCol; i--) {
System.out.print(arr[endRow][i] + " ");
count++;
}
endRow--;
// print first column
for (int i = endRow; i >= startRow; i--) {
System.out.print(arr[i][startCol] + " ");
count++;
}
startCol++;
}

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package DS_04_Array_and_Strings.Arrays_and_Questions;

public class RainwaterTrapping {

}
19 changes: 19 additions & 0 deletions DS_04_Array_and_Strings/Arrays_and_Questions/StockBuyAndSell1.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package DS_04_Array_and_Strings.Arrays_and_Questions;

public class StockBuyAndSell1 {
// Question 3 : Stock Buy and Sell (part - 1 : one stock at a time)
// leetcode link :
// https://leetcode.com/problems/best-time-to-buy-and-sell-stock/

public int maxProfit(int[] arr) {
int max = 0;
int minSoFar = arr[0];
for (int i = 0; i < arr.length; i++) {
minSoFar = Math.min(minSoFar, arr[i]);
int profit = arr[i] - minSoFar;
max = Math.max(max, profit);
}
return max;
}

}
18 changes: 18 additions & 0 deletions DS_04_Array_and_Strings/Arrays_and_Questions/StockBuyAndSell2.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package DS_04_Array_and_Strings.Arrays_and_Questions;

public class StockBuyAndSell2 {
// Question 4 : Stock Buy and Sell (part - 2 : buy any number of stock)
// leetcode link :
// https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/

public int maxProfit(int[] arr) {
int profit = 0;
for (int i = 1; i < arr.length; i++) {
if (arr[i] > arr[i - 1]) {
profit = profit + arr[i] - arr[i - 1];
}
}
return profit;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package DS_04_Array_and_Strings.Arrays_and_Questions;

public class SumOfAllSubArrays {
public static void main(String[] args) {
int[] arr = { 1, 2, 0, 7, 2 };
sum(arr);
}

static void sum(int[] arr) {
for (int i = 0; i < arr.length; i++) {
int ans = 0;
for (int j = i; j < arr.length; j++) {
ans = ans + arr[j];
System.out.println(ans);
}
}
}
}
10 changes: 10 additions & 0 deletions DS_04_Array_and_Strings/Arrays_and_Questions/array.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Majority Elements
Maximum Sum Subarray
Stock Buy And Sell - 1
Stock Buy And Sell - 2
Rainwater trapping problems


maximum till i

sum of all subarrays