Skip to content

Commit 384758f

Browse files
authored
Create Stock Spain Problem.java
1 parent 6e5ea10 commit 384758f

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
import java.util.*;
2+
public class Main
3+
{
4+
public static void main(String[] args) {
5+
int[] arr =new int[]{10,4,5,90,120,80};
6+
int res[] = stockSpain(arr,arr.length);
7+
for(int i=0;i<res.length;i++){
8+
System.out.print(res[i]+" ");
9+
}
10+
}
11+
public static int[] stockSpain(int[] arr ,int n){
12+
Stack<Integer> st = new Stack<>();
13+
int[] res = new int[n];
14+
15+
for(int i=0;i<n;i++){
16+
if(st.isEmpty()){
17+
res[i] =1;
18+
}else if(arr[st.peek()]>arr[i]){
19+
res[i] =1;
20+
}else{
21+
while(!st.isEmpty() && arr[st.peek()]<=arr[i]){
22+
st.pop();
23+
}
24+
if(st.isEmpty()){
25+
res[i] =i+1;
26+
}else{
27+
res[i] =i-st.peek();
28+
}
29+
}
30+
st.push(i);
31+
}
32+
return res;
33+
}
34+
}
35+
36+
37+
//Probelem Link :https://www.codingninjas.com/studio/problems/stock-span_5243295?utm_source=striver&utm_medium=website&utm_campaign=a_zcoursetuf&leftPanelTab=1
38+
//Soln ::
39+
import java.util.*;
40+
public class Solution {
41+
public static int[] findStockSpans(int []arr) {
42+
// Write your code here.
43+
int n=arr.length;
44+
Stack<Integer> st = new Stack<>();
45+
int[] res = new int[n];
46+
47+
for(int i=0;i<n;i++){
48+
if(st.isEmpty()){
49+
res[i] =1;
50+
}else if(arr[st.peek()]>=arr[i]){
51+
res[i] =1;
52+
}else{
53+
while(!st.isEmpty() && arr[st.peek()]<arr[i]){
54+
st.pop();
55+
}
56+
if(st.isEmpty()){
57+
res[i] =i+1;
58+
}else{
59+
res[i] =i-st.peek();
60+
}
61+
}
62+
st.push(i);
63+
}
64+
return res;
65+
}
66+
}

0 commit comments

Comments
 (0)