-
Tree
Tree To List
Tree Check Mirror
Print Root Leaf Path Without Recursion
Print All Root Leaf Paths
Find Minimum Depth
Find Maximum Depth
Construct Inorder Preorder
Check Root To Leaf Sum
Check Bst
Tree Check Complete
Tree Right View
Sum Root To Leaf Numbers
Tree Traversal Spiral
Tree Convert Mirror
Tree Check Isomorphic
Sorted Array to Balanced BST
-
Stack
Stack Stock Span
Stack Next Great Element
Stack Two Array
Stack Longest Valid Parentheses
Stack Check Balanced Parentheses
-
Queue
Queue List Implementation
Queue Array Implementation
-
Matrix
Maximum Square Submatrix
Matrix Search Sorted
Maximum Sum Rectangle
-
List
List Rearrange Odd Then Even
List Flattening
List Delete N Nodes After M Nodes
List Check Circular
List Binary To Decimal
List Add 1
List Reverse
List Intersection
List Detect Loop
-
Graph
Graph Depth First Search
Graph Breadth First Search
-
Array
Two Sum
Template
Binary Search Variants
Stock Buy Sell At Most K Times
Stock Buy Sell
Stock Buy Sell Once
Array Search Sorted Rotated
Median Of Stream
Array Sort 0 1 2
Array Majority Element
Smallest Sum Contiguous Subarray
Largest Sum Contiguous Subarray
-
String Longest Valid Parentheses
public int longestValidParentheses(String s) { int left = 0, right = 0, maxlength = 0; for (int i = 0; i < s.length(); i++) { if (s.charAt(i) == '(') { left++; } else { right++; } if (left == right) { maxlength = Math.max(maxlength, 2 * right); } else if (right >= left) { left = right = 0; } } left = right = 0; for (int i = s.length() - 1; i >= 0; i--) { if (s.charAt(i) == '(') { left++; } else { right++; } if (left == right) { maxlength = Math.max(maxlength, 2 * left); } else if (left >= right) { left = right = 0; } } return maxlength; }
-
Dp Longest Valid Parentheses
int longestValidParentheses(String s) { int maxans = 0; int dp[] = new int[s.length()]; for (int i = 1; i < s.length(); i++) { if (s.charAt(i) == ')') { if (s.charAt(i - 1) == '(') { dp[i] = (i >= 2 ? dp[i - 2] : 0) + 2; } else if (i - dp[i - 1] > 0 && s.charAt(i - dp[i - 1] - 1) == '(') { dp[i] = dp[i - 1] + ((i - dp[i - 1]) >= 2 ? dp[i - dp[i - 1] - 2] : 0) + 2; } maxans = Math.max(maxans, dp[i]); } } return maxans; }
-
Zigzag Tree Traversal
```java void printZigZagTraversal() {