Skip to content

Commit fcb0a35

Browse files
authored
2022-10-06 update: added "Online Stock Span" (#126)
1 parent 5da962f commit fcb0a35

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -590,6 +590,7 @@ Profile on LeetCode: [fartem](https://leetcode.com/fartem/).
590590
| 889. Construct Binary Tree from Preorder and Postorder Traversal | [Link](https://leetcode.com/problems/construct-binary-tree-from-preorder-and-postorder-traversal/) | [Link](./src/main/java/com/smlnskgmail/jaman/leetcodejava/medium/ConstructBinaryTreeFromPreorderAndPostorderTraversal.java) |
591591
| 890. Find and Replace Pattern | [Link](https://leetcode.com/problems/find-and-replace-pattern/) | [Link](./src/main/java/com/smlnskgmail/jaman/leetcodejava/medium/FindAndReplacePattern.java) |
592592
| 894. All Possible Full Binary Trees | [Link](https://leetcode.com/problems/all-possible-full-binary-trees/) | [Link](./src/main/java/com/smlnskgmail/jaman/leetcodejava/medium/AllPossibleFullBinaryTrees.java) |
593+
| 901. Online Stock Span | [Link](https://leetcode.com/problems/online-stock-span/) | [Link](./src/main/java/com/smlnskgmail/jaman/leetcodejava/medium/OnlineStockSpan.java) |
593594
| 910. Smallest Range II | [Link](https://leetcode.com/problems/smallest-range-ii/) | [Link](./src/main/java/com/smlnskgmail/jaman/leetcodejava/medium/SmallestRangeII.java) |
594595
| 912. Sort an Array | [Link](https://leetcode.com/problems/sort-an-array/) | [Link](./src/main/java/com/smlnskgmail/jaman/leetcodejava/medium/SortAnArray.java) |
595596
| 916. Word Subsets | [Link](https://leetcode.com/problems/word-subsets/) | [Link](./src/main/java/com/smlnskgmail/jaman/leetcodejava/medium/WordSubsets.java) |
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.smlnskgmail.jaman.leetcodejava.medium;
2+
3+
import java.util.Stack;
4+
5+
// https://leetcode.com/problems/online-stock-span/
6+
public class OnlineStockSpan {
7+
8+
private final Stack<int[]> stack = new Stack<>();
9+
10+
public int next(int price) {
11+
int result = 1;
12+
while (!stack.isEmpty() && stack.peek()[0] <= price) {
13+
result += stack.pop()[1];
14+
}
15+
stack.push(new int[]{price, result});
16+
return result;
17+
}
18+
19+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.smlnskgmail.jaman.leetcodejava.medium;
2+
3+
import org.junit.Test;
4+
5+
import static org.junit.Assert.assertEquals;
6+
7+
public class OnlineStockSpanTest {
8+
9+
@Test
10+
public void defaultTest() {
11+
var onlineStockSpan = new OnlineStockSpan();
12+
assertEquals(1, onlineStockSpan.next(100));
13+
assertEquals(1, onlineStockSpan.next(80));
14+
assertEquals(1, onlineStockSpan.next(60));
15+
assertEquals(2, onlineStockSpan.next(70));
16+
assertEquals(1, onlineStockSpan.next(60));
17+
assertEquals(4, onlineStockSpan.next(75));
18+
assertEquals(6, onlineStockSpan.next(85));
19+
}
20+
21+
}

0 commit comments

Comments
 (0)