LeetCode - 150 - Car Fleet
The problem There are聽n聽cars at given miles away from the starting mile 0, traveling to reach the mile聽target. You are given two integer array聽position聽and聽speed, both of length聽n, where聽position[i]聽is the starting mile of the聽ith聽car and聽speed[i]聽is the speed of the聽ith聽car in miles per hour. A car cannot pass another car, but it can catch up and then travel next to it at the speed of the slower car. ...
LeetCode - 150 - Daily Temperatures
The problem Given an array of integers temperatures represents the daily temperatures, return an array answer such that answer[i] is the number of days you have to wait after the ith day to get a warmer temperature. If there is no future day for which this is possible, keep answer[i] == 0 instead. Examples Input: temperatures = [73,74,75,71,69,72,76,73] Output: [1,1,4,2,1,1,0,0] Input: temperatures = [30,40,50,60] Output: [1,1,1,0] Input: temperatures = [30,60,90] Output: [1,1,0] Constraints 1 <= temperatures.length <= 10^5 30 <= temperatures[i] <= 100 Explanation Before we jump to the solution, let鈥檚 figure out the way we can solve this problem. In the first example, we can see that we can calculate how many days in the input array it takes us to find a temperature that is greater than 73. ...
LeetCode - 150 - Generate Parentheses
The problem Given聽n聽pairs of parentheses, write a function to聽generate all combinations of well-formed parentheses. Examples Input: n = 3 Output: ["((()))","(()())","(())()","()(())","()()()"] Input: n = 1 Output: ["()"] Constraints 1 <= n <= 8 Explanation Before we jump to the solution, let鈥檚 figure out what well-formed parentheses mean. In this problem, this means when you鈥檙e writing the code using nested parentheses, you want them to be nested in a valid way, like (()()). ...
LeetCode - 150 - Evaluate Reverse Polish Notation
The problem You are given an array of strings聽tokens聽that represents an arithmetic expression in聽Reverse Polish Notation. Evaluate the expression. Return聽an integer that represents the value of the expression. Note聽that: The valid operators are聽+,聽-,聽* and聽/. Each operand may be an integer or another expression. The division between two integers always聽truncates toward zero. There will not be any division by zero. The input represents a valid arithmetic expression in reverse Polish notation. The answer and all the intermediate calculations can be represented in a聽32-bit聽integer. Examples Input: tokens = ["2","1","+","3","*"] Output: 9 Explanation: ((2 + 1) * 3) = 9 Input: tokens = ["4","13","5","/","+"] Output: 6 Explanation: (4 + (13 / 5)) = 6 Input: tokens = ["10","6","9","3","+","-11","*","/","*","17","+","5","+"] Output: 22 Explanation: ((10 * (6 / ((9 + 3) * -11))) + 17) + 5 = ((10 * (6 / (12 * -11))) + 17) + 5 = ((10 * (6 / -132)) + 17) + 5 = ((10 * 0) + 17) + 5 = (0 + 17) + 5 = 17 + 5 = 22 Constraints 1 <= tokens.length <= 10^4 tokens[i]聽is either an operator:聽+,聽-,聽*, or聽/, or an integer in the range聽[-200, 200]. Explanation Let鈥檚 take a look at the example with input tokens = ["2","1","+","3","*"], and try to figure out the way we can solve it. ...
LeetCode - 150 - Min Stack
The problem Design a stack that supports push, pop, top, and retrieving the minimum element in constant time. Implement the聽MinStack聽class: MinStack()聽initializes the stack object. void push(int val)聽pushes the element聽val聽onto the stack. void pop()聽removes the element on the top of the stack. int top()聽gets the top element of the stack. int getMin()聽retrieves the minimum element in the stack. You must implement a solution with聽O(1)聽time complexity for each function. ...