Skip to content

Commit 60c5bd4

Browse files
add 901
1 parent 5024b0f commit 60c5bd4

File tree

3 files changed

+48
-0
lines changed

3 files changed

+48
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,7 @@ _If you like this project, please leave me a star._ ★
236236
|914|[X of a Kind in a Deck of Cards](https://leetcode.com/problems/x-of-a-kind-in-a-deck-of-cards/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_914.java) | |Easy|
237237
|912|[Sort an Array](https://leetcode.com/problems/sort-an-array/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_912.java) | |Easy|
238238
|908|[Smallest Range I](https://leetcode.com/problems/smallest-range-i/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_908.java) | |Easy|
239+
|901|[Online Stock Span](https://leetcode.com/problems/online-stock-span/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_901.java) | |Medium| Stack
239240
|900|[RLE Iterator](https://leetcode.com/problems/rle-iterator/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_900.java) | |Medium|
240241
|897|[Increasing Order Search Tree](https://leetcode.com/problems/increasing-order-search-tree/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_897.java) | |Easy| DFS, recursion
241242
|896|[Monotonic Array](https://leetcode.com/problems/monotonic-array/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_896.java) | |Easy|
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.fishercoder.solutions;
2+
3+
import java.util.Stack;
4+
5+
public class _901 {
6+
public static class Solution1 {
7+
public static class StockSpanner {
8+
Stack<int[]> stack;
9+
10+
public StockSpanner() {
11+
stack = new Stack<>();
12+
}
13+
14+
public int next(int price) {
15+
int result = 1;
16+
while (!stack.isEmpty() && stack.peek()[0] <= price) {
17+
result += stack.pop()[1];
18+
}
19+
stack.push(new int[]{price, result});
20+
return result;
21+
}
22+
}
23+
}
24+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.fishercoder;
2+
3+
import com.fishercoder.solutions._901;
4+
import org.junit.Test;
5+
6+
import static org.junit.Assert.assertEquals;
7+
8+
public class _901Test {
9+
private static _901.Solution1.StockSpanner stockSpanner;
10+
11+
@Test
12+
public void test1() {
13+
stockSpanner = new _901.Solution1.StockSpanner();
14+
assertEquals(1, stockSpanner.next(100));
15+
assertEquals(1, stockSpanner.next(80));
16+
assertEquals(1, stockSpanner.next(60));
17+
assertEquals(2, stockSpanner.next(70));
18+
assertEquals(1, stockSpanner.next(60));
19+
assertEquals(4, stockSpanner.next(75));
20+
assertEquals(6, stockSpanner.next(85));
21+
}
22+
23+
}

0 commit comments

Comments
 (0)