[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"coding-interview-bank":3},{"categories":4,"topicFilters":26,"problems":37},[5,8,11,14,16,18,20,22,24],{"name":6,"count":7},"Array",8,{"name":9,"count":10},"String",4,{"name":12,"count":13},"Hash Table",2,{"name":15,"count":13},"Stack",{"name":17,"count":10},"Binary Search",{"name":19,"count":10},"Dynamic Programming",{"name":21,"count":13},"Math",{"name":23,"count":10},"Two Pointers",{"name":25,"count":13},"Backtracking",[27,32],{"label":28,"value":29,"icon":30,"tone":31},"All Problems","all","Archive","#e2e8f0",{"label":33,"value":34,"icon":35,"tone":36},"Algorithms","algorithm","Sigma","#2563eb",[38,87,120,152,180,211,242,274,302,332,365,397,429,459,491,524,560,592,624,655,688,717,747,780,808,836,865,896,928,960,989,1017],{"id":39,"slug":40,"title":41,"acceptance":42,"difficulty":43,"category":12,"topic":34,"companies":44,"solved":48,"description":49,"examples":52,"constraints":61,"starterCode":64,"referenceSolutions":68,"signature":72,"testCases":81},1,"two-sum","Two Sum","Practice","easy",[45,46,47],"Amazon","Google","Microsoft",false,[50,51],"Given an integer array nums and an integer target, return the indices of the two numbers that add up to target.","Each input has exactly one valid answer, and you may not use the same element twice.",[53,57],{"input":54,"title":55,"output":56},"nums = [2,7,11,15], target = 9","Example 1","[0,1]",{"input":58,"title":59,"output":60},"nums = [3,2,4], target = 6","Example 2","[1,2]",[62,63],"2 \u003C= nums.length \u003C= 10^4","Exactly one valid answer exists.",{"cpp":65,"java":66,"python":67,"python3":67},"class Solution {\npublic:\n    vector\u003Cint> twoSum(vector\u003Cint>& nums, int target) {\n        \n    }\n};","class Solution {\n    public int[] twoSum(int[] nums, int target) {\n        \n    }\n}","class Solution:\n    def twoSum(self, nums: List[int], target: int) -> List[int]:\n        pass",{"cpp":69,"java":70,"python":71,"python3":71},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    vector\u003Cint> twoSum(vector\u003Cint>& nums, int target) {\n        unordered_map\u003Cint, int> seen;\n        for (int i = 0; i \u003C static_cast\u003Cint>(nums.size()); ++i) {\n            const int need = target - nums[i];\n            const auto match = seen.find(need);\n            if (match != seen.end()) return {match->second, i};\n            seen[nums[i]] = i;\n        }\n        return {};\n    }\n};","import java.util.*;\n\nclass Solution {\n    public int[] twoSum(int[] nums, int target) {\n        Map\u003CInteger, Integer> seen = new HashMap\u003C>();\n        for (int i = 0; i \u003C nums.length; i++) {\n            int need = target - nums[i];\n            if (seen.containsKey(need)) {\n                return new int[] { seen.get(need), i };\n            }\n            seen.put(nums[i], i);\n        }\n        return new int[] {};\n    }\n}","from typing import List\n\nclass Solution:\n    def twoSum(self, nums: List[int], target: int) -> List[int]:\n        seen = {}\n        for i, num in enumerate(nums):\n            need = target - num\n            if need in seen:\n                return [seen[need], i]\n            seen[num] = i\n        return []",{"params":73,"methodName":80,"returnType":76},[74,77],{"name":75,"type":76},"nums","number[]",{"name":78,"type":79},"target","number","twoSum",[82,85],{"id":83,"visibility":84,"input":54,"expected":56},"sample-1","sample",{"id":86,"visibility":84,"input":58,"expected":60},"sample-2",{"id":13,"slug":88,"title":89,"acceptance":42,"difficulty":43,"category":15,"topic":34,"companies":90,"solved":48,"description":91,"examples":93,"constraints":100,"starterCode":102,"referenceSolutions":106,"signature":110,"testCases":117},"valid-parentheses","Valid Parentheses",[45,47],[92],"Given a string s containing only bracket characters, determine whether the brackets are valid.",[94,97],{"input":95,"title":55,"output":96},"s = \"()\"","true",{"input":98,"title":59,"output":99},"s = \"([)]\"","false",[101],"1 \u003C= s.length \u003C= 10^4",{"cpp":103,"java":104,"python":105,"python3":105},"class Solution {\npublic:\n    bool isValid(string s) {\n        \n    }\n};","class Solution {\n    public boolean isValid(String s) {\n        \n    }\n}","class Solution:\n    def isValid(self, s: str) -> bool:\n        pass",{"cpp":107,"java":108,"python":109,"python3":109},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    bool isValid(string s) {\n        stack\u003Cchar> brackets;\n        for (char ch : s) {\n            if (ch == '(' || ch == '[' || ch == '{') {\n                brackets.push(ch);\n                continue;\n            }\n            if (brackets.empty()) return false;\n            const char left = brackets.top();\n            brackets.pop();\n            if ((ch == ')' && left != '(') || (ch == ']' && left != '[') ||\n                (ch == '}' && left != '{')) return false;\n        }\n        return brackets.empty();\n    }\n};","import java.util.*;\n\nclass Solution {\n    public boolean isValid(String s) {\n        Deque\u003CCharacter> stack = new ArrayDeque\u003C>();\n        for (char ch : s.toCharArray()) {\n            if (ch == '(' || ch == '[' || ch == '{') {\n                stack.push(ch);\n            } else if (stack.isEmpty()) {\n                return false;\n            } else {\n                char left = stack.pop();\n                if (ch == ')' && left != '(') return false;\n                if (ch == ']' && left != '[') return false;\n                if (ch == '}' && left != '{') return false;\n            }\n        }\n        return stack.isEmpty();\n    }\n}","class Solution:\n    def isValid(self, s: str) -> bool:\n        stack = []\n        pairs = {')': '(', ']': '[', '}': '{'}\n        for ch in s:\n            if ch in pairs.values():\n                stack.append(ch)\n            elif ch not in pairs or not stack or stack.pop() != pairs[ch]:\n                return False\n        return not stack",{"params":111,"methodName":115,"returnType":116},[112],{"name":113,"type":114},"s","string","isValid","boolean",[118,119],{"id":83,"visibility":84,"input":95,"expected":96},{"id":86,"visibility":84,"input":98,"expected":99},{"id":121,"slug":122,"title":123,"acceptance":42,"difficulty":43,"category":6,"topic":34,"companies":124,"solved":48,"description":125,"examples":127,"constraints":134,"starterCode":136,"referenceSolutions":140,"signature":144,"testCases":149},3,"best-time-to-buy-and-sell-stock","Best Time to Buy and Sell Stock",[45,47],[126],"Given an array prices, return the maximum profit you can achieve from one buy and one sell.",[128,131],{"input":129,"title":55,"output":130},"prices = [7,1,5,3,6,4]","5",{"input":132,"title":59,"output":133},"prices = [7,6,4,3,1]","0",[135],"1 \u003C= prices.length \u003C= 10^5",{"cpp":137,"java":138,"python":139,"python3":139},"class Solution {\npublic:\n    int maxProfit(vector\u003Cint>& prices) {\n        \n    }\n};","class Solution {\n    public int maxProfit(int[] prices) {\n        \n    }\n}","class Solution:\n    def maxProfit(self, prices: List[int]) -> int:\n        pass",{"cpp":141,"java":142,"python":143,"python3":143},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    int maxProfit(vector\u003Cint>& prices) {\n        int lowest = numeric_limits\u003Cint>::max();\n        int best = 0;\n        for (int price : prices) {\n            lowest = min(lowest, price);\n            best = max(best, price - lowest);\n        }\n        return best;\n    }\n};","class Solution {\n    public int maxProfit(int[] prices) {\n        int minPrice = Integer.MAX_VALUE, best = 0;\n        for (int price : prices) {\n            minPrice = Math.min(minPrice, price);\n            best = Math.max(best, price - minPrice);\n        }\n        return best;\n    }\n}","from typing import List\n\nclass Solution:\n    def maxProfit(self, prices: List[int]) -> int:\n        min_price = float(\"inf\")\n        best = 0\n        for price in prices:\n            min_price = min(min_price, price)\n            best = max(best, price - min_price)\n        return best",{"params":145,"methodName":148,"returnType":79},[146],{"name":147,"type":76},"prices","maxProfit",[150,151],{"id":83,"visibility":84,"input":129,"expected":130},{"id":86,"visibility":84,"input":132,"expected":133},{"id":10,"slug":153,"title":154,"acceptance":42,"difficulty":43,"category":12,"topic":34,"companies":155,"solved":48,"description":156,"examples":158,"constraints":163,"starterCode":165,"referenceSolutions":169,"signature":173,"testCases":177},"contains-duplicate","Contains Duplicate",[45,47],[157],"Determine whether the integer array nums contains any duplicate values.",[159,161],{"input":160,"title":55,"output":96},"nums = [1,2,3,1]",{"input":162,"title":59,"output":99},"nums = [1,2,3,4]",[164],"1 \u003C= nums.length \u003C= 10^5",{"cpp":166,"java":167,"python":168,"python3":168},"class Solution {\npublic:\n    bool containsDuplicate(vector\u003Cint>& nums) {\n        \n    }\n};","class Solution {\n    public boolean containsDuplicate(int[] nums) {\n        \n    }\n}","class Solution:\n    def containsDuplicate(self, nums: List[int]) -> bool:\n        pass",{"cpp":170,"java":171,"python":172,"python3":172},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    bool containsDuplicate(vector\u003Cint>& nums) {\n        unordered_set\u003Cint> seen;\n        for (int value : nums) {\n            if (!seen.insert(value).second) return true;\n        }\n        return false;\n    }\n};","import java.util.*;\n\nclass Solution {\n    public boolean containsDuplicate(int[] nums) {\n        Set\u003CInteger> seen = new HashSet\u003C>();\n        for (int num : nums) {\n            if (!seen.add(num)) {\n                return true;\n            }\n        }\n        return false;\n    }\n}","from typing import List\n\nclass Solution:\n    def containsDuplicate(self, nums: List[int]) -> bool:\n        return len(nums) != len(set(nums))",{"params":174,"methodName":176,"returnType":116},[175],{"name":75,"type":76},"containsDuplicate",[178,179],{"id":83,"visibility":84,"input":160,"expected":96},{"id":86,"visibility":84,"input":162,"expected":99},{"id":181,"slug":182,"title":183,"acceptance":42,"difficulty":184,"category":19,"topic":34,"companies":185,"solved":48,"description":186,"examples":188,"constraints":195,"starterCode":196,"referenceSolutions":200,"signature":204,"testCases":208},5,"maximum-subarray","Maximum Subarray","medium",[47,46],[187],"Given an integer array nums, find the contiguous subarray with the largest sum and return its sum.",[189,192],{"input":190,"title":55,"output":191},"nums = [-2,1,-3,4,-1,2,1,-5,4]","6",{"input":193,"title":59,"output":194},"nums = [1]","1",[164],{"cpp":197,"java":198,"python":199,"python3":199},"class Solution {\npublic:\n    int maxSubArray(vector\u003Cint>& nums) {\n        \n    }\n};","class Solution {\n    public int maxSubArray(int[] nums) {\n        \n    }\n}","class Solution:\n    def maxSubArray(self, nums: List[int]) -> int:\n        pass",{"cpp":201,"java":202,"python":203,"python3":203},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    int maxSubArray(vector\u003Cint>& nums) {\n        int current = nums[0];\n        int best = nums[0];\n        for (int i = 1; i \u003C static_cast\u003Cint>(nums.size()); ++i) {\n            current = max(nums[i], current + nums[i]);\n            best = max(best, current);\n        }\n        return best;\n    }\n};","class Solution {\n    public int maxSubArray(int[] nums) {\n        int current = nums[0], best = nums[0];\n        for (int i = 1; i \u003C nums.length; i++) {\n            current = Math.max(nums[i], current + nums[i]);\n            best = Math.max(best, current);\n        }\n        return best;\n    }\n}","from typing import List\n\nclass Solution:\n    def maxSubArray(self, nums: List[int]) -> int:\n        current = best = nums[0]\n        for num in nums[1:]:\n            current = max(num, current + num)\n            best = max(best, current)\n        return best",{"params":205,"methodName":207,"returnType":79},[206],{"name":75,"type":76},"maxSubArray",[209,210],{"id":83,"visibility":84,"input":190,"expected":191},{"id":86,"visibility":84,"input":193,"expected":194},{"id":212,"slug":213,"title":214,"acceptance":42,"difficulty":43,"category":17,"topic":34,"companies":215,"solved":48,"description":216,"examples":218,"constraints":224,"starterCode":226,"referenceSolutions":230,"signature":234,"testCases":239},6,"search-insert-position","Search Insert Position",[47,46],[217],"Given a sorted array and a target value, return its index or the index where it would be inserted.",[219,222],{"input":220,"title":55,"output":221},"nums = [1,3,5,6], target = 5","2",{"input":223,"title":59,"output":194},"nums = [1,3,5,6], target = 2",[225],"1 \u003C= nums.length \u003C= 10^4",{"cpp":227,"java":228,"python":229,"python3":229},"class Solution {\npublic:\n    int searchInsert(vector\u003Cint>& nums, int target) {\n        \n    }\n};","class Solution {\n    public int searchInsert(int[] nums, int target) {\n        \n    }\n}","class Solution:\n    def searchInsert(self, nums: List[int], target: int) -> int:\n        pass",{"cpp":231,"java":232,"python":233,"python3":233},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    int searchInsert(vector\u003Cint>& nums, int target) {\n        int left = 0;\n        int right = static_cast\u003Cint>(nums.size());\n        while (left \u003C right) {\n            const int middle = left + (right - left) \u002F 2;\n            if (nums[middle] \u003C target) left = middle + 1;\n            else right = middle;\n        }\n        return left;\n    }\n};","class Solution {\n    public int searchInsert(int[] nums, int target) {\n        int left = 0, right = nums.length;\n        while (left \u003C right) {\n            int mid = left + (right - left) \u002F 2;\n            if (nums[mid] \u003C target) left = mid + 1;\n            else right = mid;\n        }\n        return left;\n    }\n}","from typing import List\n\nclass Solution:\n    def searchInsert(self, nums: List[int], target: int) -> int:\n        left, right = 0, len(nums)\n        while left \u003C right:\n            mid = (left + right) \u002F\u002F 2\n            if nums[mid] \u003C target:\n                left = mid + 1\n            else:\n                right = mid\n        return left",{"params":235,"methodName":238,"returnType":79},[236,237],{"name":75,"type":76},{"name":78,"type":79},"searchInsert",[240,241],{"id":83,"visibility":84,"input":220,"expected":221},{"id":86,"visibility":84,"input":223,"expected":194},{"id":243,"slug":244,"title":245,"acceptance":42,"difficulty":43,"category":6,"topic":34,"companies":246,"solved":48,"description":247,"examples":249,"constraints":256,"starterCode":258,"referenceSolutions":262,"signature":266,"testCases":271},7,"plus-one","Plus One",[46,47],[248],"A non-negative integer is represented by the array digits. Add one to the integer and return the resulting digits.",[250,253],{"input":251,"title":55,"output":252},"digits = [1,2,3]","[1,2,4]",{"input":254,"title":59,"output":255},"digits = [9]","[1,0]",[257],"1 \u003C= digits.length \u003C= 100",{"cpp":259,"java":260,"python":261,"python3":261},"class Solution {\npublic:\n    vector\u003Cint> plusOne(vector\u003Cint>& digits) {\n        \n    }\n};","class Solution {\n    public int[] plusOne(int[] digits) {\n        \n    }\n}","class Solution:\n    def plusOne(self, digits: List[int]) -> List[int]:\n        pass",{"cpp":263,"java":264,"python":265,"python3":265},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    vector\u003Cint> plusOne(vector\u003Cint>& digits) {\n        for (int i = static_cast\u003Cint>(digits.size()) - 1; i >= 0; --i) {\n            if (digits[i] \u003C 9) {\n                ++digits[i];\n                return digits;\n            }\n            digits[i] = 0;\n        }\n        digits.insert(digits.begin(), 1);\n        return digits;\n    }\n};","class Solution {\n    public int[] plusOne(int[] digits) {\n        for (int i = digits.length - 1; i >= 0; i--) {\n            if (digits[i] \u003C 9) {\n                digits[i]++;\n                return digits;\n            }\n            digits[i] = 0;\n        }\n        int[] result = new int[digits.length + 1];\n        result[0] = 1;\n        return result;\n    }\n}","from typing import List\n\nclass Solution:\n    def plusOne(self, digits: List[int]) -> List[int]:\n        for i in range(len(digits) - 1, -1, -1):\n            if digits[i] \u003C 9:\n                digits[i] += 1\n                return digits\n            digits[i] = 0\n        return [1] + digits",{"params":267,"methodName":270,"returnType":76},[268],{"name":269,"type":76},"digits","plusOne",[272,273],{"id":83,"visibility":84,"input":251,"expected":252},{"id":86,"visibility":84,"input":254,"expected":255},{"id":7,"slug":275,"title":276,"acceptance":42,"difficulty":43,"category":9,"topic":34,"companies":277,"solved":48,"description":278,"examples":280,"constraints":286,"starterCode":287,"referenceSolutions":291,"signature":295,"testCases":299},"length-of-last-word","Length of Last Word",[45,47],[279],"Given a string s, return the length of its last word.",[281,283],{"input":282,"title":55,"output":130},"s = \"Hello World\"",{"input":284,"title":59,"output":285},"s = \"   fly me   to   the moon  \"","4",[101],{"cpp":288,"java":289,"python":290,"python3":290},"class Solution {\npublic:\n    int lengthOfLastWord(string s) {\n        \n    }\n};","class Solution {\n    public int lengthOfLastWord(String s) {\n        \n    }\n}","class Solution:\n    def lengthOfLastWord(self, s: str) -> int:\n        pass",{"cpp":292,"java":293,"python":294,"python3":294},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    int lengthOfLastWord(string s) {\n        int index = static_cast\u003Cint>(s.size()) - 1;\n        while (index >= 0 && s[index] == ' ') --index;\n        int length = 0;\n        while (index >= 0 && s[index] != ' ') {\n            --index;\n            ++length;\n        }\n        return length;\n    }\n};","class Solution {\n    public int lengthOfLastWord(String s) {\n        int length = 0;\n        for (int i = s.length() - 1; i >= 0; i--) {\n            if (s.charAt(i) == ' ') {\n                if (length > 0) break;\n            } else length++;\n        }\n        return length;\n    }\n}","class Solution:\n    def lengthOfLastWord(self, s: str) -> int:\n        return len(s.rstrip().split(\" \")[-1])",{"params":296,"methodName":298,"returnType":79},[297],{"name":113,"type":114},"lengthOfLastWord",[300,301],{"id":83,"visibility":84,"input":282,"expected":130},{"id":86,"visibility":84,"input":284,"expected":285},{"id":303,"slug":304,"title":305,"acceptance":42,"difficulty":43,"category":21,"topic":34,"companies":306,"solved":48,"description":307,"examples":309,"constraints":314,"starterCode":316,"referenceSolutions":320,"signature":324,"testCases":329},9,"palindrome-number","Palindrome Number",[47],[308],"Determine whether the integer x is a palindrome.",[310,312],{"input":311,"title":55,"output":96},"x = 121",{"input":313,"title":59,"output":99},"x = -121",[315],"-2^31 \u003C= x \u003C= 2^31 - 1",{"cpp":317,"java":318,"python":319,"python3":319},"class Solution {\npublic:\n    bool isPalindrome(int x) {\n        \n    }\n};","class Solution {\n    public boolean isPalindrome(int x) {\n        \n    }\n}","class Solution:\n    def isPalindrome(self, x: int) -> bool:\n        pass",{"cpp":321,"java":322,"python":323,"python3":323},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    bool isPalindrome(int x) {\n        if (x \u003C 0) return false;\n        const string value = to_string(x);\n        return equal(value.begin(), value.begin() + value.size() \u002F 2, value.rbegin());\n    }\n};","class Solution {\n    public boolean isPalindrome(int x) {\n        if (x \u003C 0) return false;\n        int original = x, reversed = 0;\n        while (x != 0) {\n            reversed = reversed * 10 + x % 10;\n            x \u002F= 10;\n        }\n        return original == reversed;\n    }\n}","class Solution:\n    def isPalindrome(self, x: int) -> bool:\n        return str(x) == str(x)[::-1]",{"params":325,"methodName":328,"returnType":116},[326],{"name":327,"type":79},"x","isPalindrome",[330,331],{"id":83,"visibility":84,"input":311,"expected":96},{"id":86,"visibility":84,"input":313,"expected":99},{"id":333,"slug":334,"title":335,"acceptance":42,"difficulty":43,"category":9,"topic":34,"companies":336,"solved":48,"description":337,"examples":339,"constraints":346,"starterCode":348,"referenceSolutions":352,"signature":356,"testCases":362},10,"longest-common-prefix","Longest Common Prefix",[46,47],[338],"Write a function that finds the longest common prefix among an array of strings.",[340,343],{"input":341,"title":55,"output":342},"strs = [\"flower\",\"flow\",\"flight\"]","fl",{"input":344,"title":59,"output":345},"strs = [\"dog\",\"racecar\",\"car\"]","",[347],"1 \u003C= strs.length \u003C= 200",{"cpp":349,"java":350,"python":351,"python3":351},"class Solution {\npublic:\n    string longestCommonPrefix(vector\u003Cstring>& strs) {\n        \n    }\n};","class Solution {\n    public String longestCommonPrefix(String[] strs) {\n        \n    }\n}","class Solution:\n    def longestCommonPrefix(self, strs: List[str]) -> str:\n        pass",{"cpp":353,"java":354,"python":355,"python3":355},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    string longestCommonPrefix(vector\u003Cstring>& strs) {\n        string prefix = strs[0];\n        for (int i = 1; i \u003C static_cast\u003Cint>(strs.size()); ++i) {\n            while (strs[i].compare(0, prefix.size(), prefix) != 0) {\n                prefix.pop_back();\n                if (prefix.empty()) return \"\";\n            }\n        }\n        return prefix;\n    }\n};","class Solution {\n    public String longestCommonPrefix(String[] strs) {\n        String prefix = strs[0];\n        for (int i = 1; i \u003C strs.length; i++) {\n            while (!strs[i].startsWith(prefix)) {\n                prefix = prefix.substring(0, prefix.length() - 1);\n                if (prefix.isEmpty()) return \"\";\n            }\n        }\n        return prefix;\n    }\n}","from typing import List\n\nclass Solution:\n    def longestCommonPrefix(self, strs: List[str]) -> str:\n        prefix = strs[0]\n        for word in strs[1:]:\n            while not word.startswith(prefix):\n                prefix = prefix[:-1]\n                if not prefix:\n                    return \"\"\n        return prefix",{"params":357,"methodName":361,"returnType":114},[358],{"name":359,"type":360},"strs","string[]","longestCommonPrefix",[363,364],{"id":83,"visibility":84,"input":341,"expected":342},{"id":86,"visibility":84,"input":344,"expected":345},{"id":366,"slug":367,"title":368,"acceptance":42,"difficulty":184,"category":23,"topic":34,"companies":369,"solved":48,"description":370,"examples":373,"constraints":378,"starterCode":381,"referenceSolutions":385,"signature":389,"testCases":394},11,"three-sum-closest","3Sum Closest",[45,46],[371,372],"Given an integer array nums and an integer target, find three integers whose sum is closest to target.","Return the sum of the three integers. Each input has exactly one closest answer.",[374,376],{"input":375,"title":55,"output":221},"nums = [-1,2,1,-4], target = 1",{"input":377,"title":59,"output":133},"nums = [0,0,0], target = 1",[379,380],"3 \u003C= nums.length \u003C= 500","-1000 \u003C= nums[i] \u003C= 1000",{"cpp":382,"java":383,"python":384,"python3":384},"class Solution {\npublic:\n    int threeSumClosest(vector\u003Cint>& nums, int target) {\n        \n    }\n};","class Solution {\n    public int threeSumClosest(int[] nums, int target) {\n        \n    }\n}","class Solution:\n    def threeSumClosest(self, nums: List[int], target: int) -> int:\n        pass",{"cpp":386,"java":387,"python":388,"python3":388},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    int threeSumClosest(vector\u003Cint>& nums, int target) {\n        sort(nums.begin(), nums.end());\n        int best = nums[0] + nums[1] + nums[2];\n        for (int i = 0; i \u003C static_cast\u003Cint>(nums.size()) - 2; ++i) {\n            int left = i + 1;\n            int right = static_cast\u003Cint>(nums.size()) - 1;\n            while (left \u003C right) {\n                const int sum = nums[i] + nums[left] + nums[right];\n                if (abs(sum - target) \u003C abs(best - target)) best = sum;\n                if (sum \u003C target) ++left;\n                else if (sum > target) --right;\n                else return sum;\n            }\n        }\n        return best;\n    }\n};","import java.util.*;\n\nclass Solution {\n    public int threeSumClosest(int[] nums, int target) {\n        Arrays.sort(nums);\n        int best = nums[0] + nums[1] + nums[2];\n        for (int i = 0; i \u003C nums.length - 2; i++) {\n            int left = i + 1, right = nums.length - 1;\n            while (left \u003C right) {\n                int sum = nums[i] + nums[left] + nums[right];\n                if (Math.abs(sum - target) \u003C Math.abs(best - target)) best = sum;\n                if (sum \u003C target) left++;\n                else if (sum > target) right--;\n                else return sum;\n            }\n        }\n        return best;\n    }\n}","from typing import List\n\nclass Solution:\n    def threeSumClosest(self, nums: List[int], target: int) -> int:\n        nums.sort()\n        best = nums[0] + nums[1] + nums[2]\n        for i in range(len(nums) - 2):\n            left, right = i + 1, len(nums) - 1\n            while left \u003C right:\n                total = nums[i] + nums[left] + nums[right]\n                if abs(total - target) \u003C abs(best - target):\n                    best = total\n                if total \u003C target:\n                    left += 1\n                elif total > target:\n                    right -= 1\n                else:\n                    return total\n        return best",{"params":390,"methodName":393,"returnType":79},[391,392],{"name":75,"type":76},{"name":78,"type":79},"threeSumClosest",[395,396],{"id":83,"visibility":84,"input":375,"expected":221},{"id":86,"visibility":84,"input":377,"expected":133},{"id":398,"slug":399,"title":400,"acceptance":42,"difficulty":184,"category":25,"topic":34,"companies":401,"solved":48,"description":402,"examples":404,"constraints":411,"starterCode":414,"referenceSolutions":418,"signature":422,"testCases":426},12,"letter-combinations-of-a-phone-number","Letter Combinations of a Phone Number",[45,46],[403],"Given a string containing digits from 2 to 9, return all possible letter combinations that the number could represent.",[405,408],{"input":406,"title":55,"output":407},"digits = \"23\"","[\"ad\",\"ae\",\"af\",\"bd\",\"be\",\"bf\",\"cd\",\"ce\",\"cf\"]",{"input":409,"title":59,"output":410},"digits = \"\"","[]",[412,413],"0 \u003C= digits.length \u003C= 4","digits[i] is a digit from 2 to 9.",{"cpp":415,"java":416,"python":417,"python3":417},"class Solution {\npublic:\n    vector\u003Cstring> letterCombinations(string digits) {\n        \n    }\n};","class Solution {\n    public String[] letterCombinations(String digits) {\n        \n    }\n}","class Solution:\n    def letterCombinations(self, digits: str) -> List[str]:\n        pass",{"cpp":419,"java":420,"python":421,"python3":421},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    vector\u003Cstring> letterCombinations(string digits) {\n        if (digits.empty()) return {};\n        const vector\u003Cstring> letters = {\"\", \"\", \"abc\", \"def\", \"ghi\", \"jkl\", \"mno\", \"pqrs\", \"tuv\", \"wxyz\"};\n        vector\u003Cstring> result;\n        string current;\n        function\u003Cvoid(int)> visit = [&](int index) {\n            if (index == static_cast\u003Cint>(digits.size())) {\n                result.push_back(current);\n                return;\n            }\n            for (char ch : letters[digits[index] - '0']) {\n                current.push_back(ch);\n                visit(index + 1);\n                current.pop_back();\n            }\n        };\n        visit(0);\n        return result;\n    }\n};","import java.util.*;\n\nclass Solution {\n    public String[] letterCombinations(String digits) {\n        if (digits.isEmpty()) return new String[] {};\n        String[] map = new String[] {\"\", \"\", \"abc\", \"def\", \"ghi\", \"jkl\", \"mno\", \"pqrs\", \"tuv\", \"wxyz\"};\n        List\u003CString> result = new ArrayList\u003C>();\n        backtrack(digits, 0, new StringBuilder(), map, result);\n        return result.toArray(new String[0]);\n    }\n\n    private void backtrack(String digits, int index, StringBuilder path, String[] map, List\u003CString> result) {\n        if (index == digits.length()) {\n            result.add(path.toString());\n            return;\n        }\n        String letters = map[digits.charAt(index) - '0'];\n        for (char ch : letters.toCharArray()) {\n            path.append(ch);\n            backtrack(digits, index + 1, path, map, result);\n            path.deleteCharAt(path.length() - 1);\n        }\n    }\n}","from typing import List\n\nclass Solution:\n    def letterCombinations(self, digits: str) -> List[str]:\n        if not digits:\n            return []\n        mapping = {\"2\": \"abc\", \"3\": \"def\", \"4\": \"ghi\", \"5\": \"jkl\", \"6\": \"mno\", \"7\": \"pqrs\", \"8\": \"tuv\", \"9\": \"wxyz\"}\n        result = []\n        def backtrack(index: int, path: str) -> None:\n            if index == len(digits):\n                result.append(path)\n                return\n            for ch in mapping[digits[index]]:\n                backtrack(index + 1, path + ch)\n        backtrack(0, \"\")\n        return result",{"params":423,"methodName":425,"returnType":360},[424],{"name":269,"type":114},"letterCombinations",[427,428],{"id":83,"visibility":84,"input":406,"expected":407},{"id":86,"visibility":84,"input":409,"expected":410},{"id":430,"slug":431,"title":432,"acceptance":42,"difficulty":43,"category":23,"topic":34,"companies":433,"solved":48,"description":434,"examples":436,"constraints":441,"starterCode":444,"referenceSolutions":448,"signature":452,"testCases":456},13,"remove-duplicates-from-sorted-array","Remove Duplicates from Sorted Array",[47,46],[435],"Given an array nums sorted in non-decreasing order, remove duplicates in place so each element appears once, and return the new length.",[437,439],{"input":438,"title":55,"output":221},"nums = [1,1,2]",{"input":440,"title":59,"output":130},"nums = [0,0,1,1,1,2,2,3,3,4]",[442,443],"1 \u003C= nums.length \u003C= 3 * 10^4","nums is sorted in non-decreasing order.",{"cpp":445,"java":446,"python":447,"python3":447},"class Solution {\npublic:\n    int removeDuplicates(vector\u003Cint>& nums) {\n        \n    }\n};","class Solution {\n    public int removeDuplicates(int[] nums) {\n        \n    }\n}","class Solution:\n    def removeDuplicates(self, nums: List[int]) -> int:\n        pass",{"cpp":449,"java":450,"python":451,"python3":451},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    int removeDuplicates(vector\u003Cint>& nums) {\n        if (nums.empty()) return 0;\n        int write = 1;\n        for (int read = 1; read \u003C static_cast\u003Cint>(nums.size()); ++read) {\n            if (nums[read] != nums[write - 1]) nums[write++] = nums[read];\n        }\n        return write;\n    }\n};","class Solution {\n    public int removeDuplicates(int[] nums) {\n        int slow = 1;\n        for (int fast = 1; fast \u003C nums.length; fast++) {\n            if (nums[fast] != nums[fast - 1]) nums[slow++] = nums[fast];\n        }\n        return slow;\n    }\n}","from typing import List\n\nclass Solution:\n    def removeDuplicates(self, nums: List[int]) -> int:\n        slow = 1\n        for fast in range(1, len(nums)):\n            if nums[fast] != nums[fast - 1]:\n                nums[slow] = nums[fast]\n                slow += 1\n        return slow",{"params":453,"methodName":455,"returnType":79},[454],{"name":75,"type":76},"removeDuplicates",[457,458],{"id":83,"visibility":84,"input":438,"expected":221},{"id":86,"visibility":84,"input":440,"expected":130},{"id":460,"slug":461,"title":462,"acceptance":42,"difficulty":43,"category":23,"topic":34,"companies":463,"solved":48,"description":464,"examples":466,"constraints":471,"starterCode":474,"referenceSolutions":478,"signature":482,"testCases":488},14,"remove-element","Remove Element",[47],[465],"Given an array nums and a value val, remove every occurrence of val in place and return the number of remaining elements.",[467,469],{"input":468,"title":55,"output":221},"nums = [3,2,2,3], val = 3",{"input":470,"title":59,"output":130},"nums = [0,1,2,2,3,0,4,2], val = 2",[472,473],"0 \u003C= nums.length \u003C= 100","0 \u003C= val \u003C= 50",{"cpp":475,"java":476,"python":477,"python3":477},"class Solution {\npublic:\n    int removeElement(vector\u003Cint>& nums, int val) {\n        \n    }\n};","class Solution {\n    public int removeElement(int[] nums, int val) {\n        \n    }\n}","class Solution:\n    def removeElement(self, nums: List[int], val: int) -> int:\n        pass",{"cpp":479,"java":480,"python":481,"python3":481},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    int removeElement(vector\u003Cint>& nums, int val) {\n        int write = 0;\n        for (int value : nums) {\n            if (value != val) nums[write++] = value;\n        }\n        return write;\n    }\n};","class Solution {\n    public int removeElement(int[] nums, int val) {\n        int slow = 0;\n        for (int num : nums) {\n            if (num != val) nums[slow++] = num;\n        }\n        return slow;\n    }\n}","from typing import List\n\nclass Solution:\n    def removeElement(self, nums: List[int], val: int) -> int:\n        slow = 0\n        for num in nums:\n            if num != val:\n                nums[slow] = num\n                slow += 1\n        return slow",{"params":483,"methodName":487,"returnType":79},[484,485],{"name":75,"type":76},{"name":486,"type":79},"val","removeElement",[489,490],{"id":83,"visibility":84,"input":468,"expected":221},{"id":86,"visibility":84,"input":470,"expected":130},{"id":492,"slug":493,"title":494,"acceptance":42,"difficulty":43,"category":9,"topic":34,"companies":495,"solved":48,"description":496,"examples":498,"constraints":504,"starterCode":506,"referenceSolutions":510,"signature":514,"testCases":521},15,"find-the-index-of-the-first-occurrence-in-a-string","Find the Index of the First Occurrence in a String",[46,47],[497],"Given strings haystack and needle, return the index of the first occurrence of needle in haystack, or -1 if it is not present.",[499,501],{"input":500,"title":55,"output":133},"haystack = \"sadbutsad\", needle = \"sad\"",{"input":502,"title":59,"output":503},"haystack = \"leetcode\", needle = \"leeto\"","-1",[505],"1 \u003C= haystack.length, needle.length \u003C= 10^4",{"cpp":507,"java":508,"python":509,"python3":509},"class Solution {\npublic:\n    int strStr(string haystack, string needle) {\n        \n    }\n};","class Solution {\n    public int strStr(String haystack, String needle) {\n        \n    }\n}","class Solution:\n    def strStr(self, haystack: str, needle: str) -> int:\n        pass",{"cpp":511,"java":512,"python":513,"python3":513},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    int strStr(string haystack, string needle) {\n        const size_t index = haystack.find(needle);\n        return index == string::npos ? -1 : static_cast\u003Cint>(index);\n    }\n};","class Solution {\n    public int strStr(String haystack, String needle) {\n        return haystack.indexOf(needle);\n    }\n}","class Solution:\n    def strStr(self, haystack: str, needle: str) -> int:\n        return haystack.find(needle)",{"params":515,"methodName":520,"returnType":79},[516,518],{"name":517,"type":114},"haystack",{"name":519,"type":114},"needle","strStr",[522,523],{"id":83,"visibility":84,"input":500,"expected":133},{"id":86,"visibility":84,"input":502,"expected":503},{"id":525,"slug":526,"title":527,"acceptance":42,"difficulty":184,"category":21,"topic":34,"companies":528,"solved":48,"description":529,"examples":532,"constraints":539,"starterCode":542,"referenceSolutions":546,"signature":550,"testCases":557},16,"divide-two-integers","Divide Two Integers",[46,47],[530,531],"Given two integers dividend and divisor, return their quotient truncated toward zero.","Prefer an implementation that does not use multiplication, division, or the modulo operator.",[533,536],{"input":534,"title":55,"output":535},"dividend = 10, divisor = 3","3",{"input":537,"title":59,"output":538},"dividend = 7, divisor = -3","-2",[540,541],"-2^31 \u003C= dividend, divisor \u003C= 2^31 - 1","divisor != 0",{"cpp":543,"java":544,"python":545,"python3":545},"class Solution {\npublic:\n    int divide(int dividend, int divisor) {\n        \n    }\n};","class Solution {\n    public int divide(int dividend, int divisor) {\n        \n    }\n}","class Solution:\n    def divide(self, dividend: int, divisor: int) -> int:\n        pass",{"cpp":547,"java":548,"python":549,"python3":549},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    int divide(int dividend, int divisor) {\n        if (dividend == numeric_limits\u003Cint>::min() && divisor == -1)\n            return numeric_limits\u003Cint>::max();\n        long long left = llabs(static_cast\u003Clong long>(dividend));\n        const long long right = llabs(static_cast\u003Clong long>(divisor));\n        long long quotient = 0;\n        while (left >= right) {\n            long long value = right;\n            long long multiple = 1;\n            while ((value \u003C\u003C 1) \u003C= left) {\n                value \u003C\u003C= 1;\n                multiple \u003C\u003C= 1;\n            }\n            left -= value;\n            quotient += multiple;\n        }\n        return (dividend \u003C 0) != (divisor \u003C 0) ? -static_cast\u003Cint>(quotient)\n                                                : static_cast\u003Cint>(quotient);\n    }\n};","class Solution {\n    public int divide(int dividend, int divisor) {\n        if (dividend == Integer.MIN_VALUE && divisor == -1) return Integer.MAX_VALUE;\n        long a = Math.abs((long) dividend), b = Math.abs((long) divisor);\n        int result = 0;\n        while (a >= b) {\n            long current = b;\n            int multiple = 1;\n            while ((current \u003C\u003C 1) \u003C= a) {\n                current \u003C\u003C= 1;\n                multiple \u003C\u003C= 1;\n            }\n            a -= current;\n            result += multiple;\n        }\n        return (dividend > 0) == (divisor > 0) ? result : -result;\n    }\n}","class Solution:\n    def divide(self, dividend: int, divisor: int) -> int:\n        if dividend == -2**31 and divisor == -1:\n            return 2**31 - 1\n        negative = (dividend > 0) != (divisor > 0)\n        a, b = abs(dividend), abs(divisor)\n        result = 0\n        while a >= b:\n            current, multiple = b, 1\n            while current \u003C\u003C 1 \u003C= a:\n                current \u003C\u003C= 1\n                multiple \u003C\u003C= 1\n            a -= current\n            result += multiple\n        return -result if negative else result",{"params":551,"methodName":556,"returnType":79},[552,554],{"name":553,"type":79},"dividend",{"name":555,"type":79},"divisor","divide",[558,559],{"id":83,"visibility":84,"input":534,"expected":535},{"id":86,"visibility":84,"input":537,"expected":538},{"id":561,"slug":562,"title":563,"acceptance":42,"difficulty":184,"category":25,"topic":34,"companies":564,"solved":48,"description":565,"examples":567,"constraints":574,"starterCode":576,"referenceSolutions":580,"signature":584,"testCases":589},17,"generate-parentheses","Generate Parentheses",[45,46,47],[566],"Given n pairs of parentheses, generate all combinations of well-formed parentheses.",[568,571],{"input":569,"title":55,"output":570},"n = 3","[\"((()))\",\"(()())\",\"(())()\",\"()(())\",\"()()()\"]",{"input":572,"title":59,"output":573},"n = 1","[\"()\"]",[575],"1 \u003C= n \u003C= 8",{"cpp":577,"java":578,"python":579,"python3":579},"class Solution {\npublic:\n    vector\u003Cstring> generateParenthesis(int n) {\n        \n    }\n};","class Solution {\n    public String[] generateParenthesis(int n) {\n        \n    }\n}","class Solution:\n    def generateParenthesis(self, n: int) -> List[str]:\n        pass",{"cpp":581,"java":582,"python":583,"python3":583},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    vector\u003Cstring> generateParenthesis(int n) {\n        vector\u003Cstring> result;\n        string current;\n        function\u003Cvoid(int, int)> visit = [&](int left, int right) {\n            if (static_cast\u003Cint>(current.size()) == n * 2) {\n                result.push_back(current);\n                return;\n            }\n            if (left \u003C n) {\n                current.push_back('(');\n                visit(left + 1, right);\n                current.pop_back();\n            }\n            if (right \u003C left) {\n                current.push_back(')');\n                visit(left, right + 1);\n                current.pop_back();\n            }\n        };\n        visit(0, 0);\n        return result;\n    }\n};","import java.util.*;\n\nclass Solution {\n    public String[] generateParenthesis(int n) {\n        List\u003CString> result = new ArrayList\u003C>();\n        backtrack(n, 0, 0, new StringBuilder(), result);\n        return result.toArray(new String[0]);\n    }\n\n    private void backtrack(int n, int left, int right, StringBuilder path, List\u003CString> result) {\n        if (path.length() == n * 2) {\n            result.add(path.toString());\n            return;\n        }\n        if (left \u003C n) {\n            path.append('(');\n            backtrack(n, left + 1, right, path, result);\n            path.deleteCharAt(path.length() - 1);\n        }\n        if (right \u003C left) {\n            path.append(')');\n            backtrack(n, left, right + 1, path, result);\n            path.deleteCharAt(path.length() - 1);\n        }\n    }\n}","from typing import List\n\nclass Solution:\n    def generateParenthesis(self, n: int) -> List[str]:\n        result = []\n        def backtrack(path: str, left: int, right: int) -> None:\n            if len(path) == n * 2:\n                result.append(path)\n                return\n            if left \u003C n:\n                backtrack(path + \"(\", left + 1, right)\n            if right \u003C left:\n                backtrack(path + \")\", left, right + 1)\n        backtrack(\"\", 0, 0)\n        return result",{"params":585,"methodName":588,"returnType":360},[586],{"name":587,"type":79},"n","generateParenthesis",[590,591],{"id":83,"visibility":84,"input":569,"expected":570},{"id":86,"visibility":84,"input":572,"expected":573},{"id":593,"slug":594,"title":595,"acceptance":42,"difficulty":184,"category":6,"topic":34,"companies":596,"solved":48,"description":597,"examples":600,"constraints":607,"starterCode":609,"referenceSolutions":613,"signature":617,"testCases":621},18,"next-permutation","Next Permutation",[46,47],[598,599],"Given an integer array nums, return its next lexicographically greater permutation.","Return the adjusted nums array for the current judge. The original LeetCode problem requires an in-place update.",[601,604],{"input":602,"title":55,"output":603},"nums = [1,2,3]","[1,3,2]",{"input":605,"title":59,"output":606},"nums = [3,2,1]","[1,2,3]",[608],"1 \u003C= nums.length \u003C= 100",{"cpp":610,"java":611,"python":612,"python3":612},"class Solution {\npublic:\n    vector\u003Cint> nextPermutation(vector\u003Cint>& nums) {\n        \n    }\n};","class Solution {\n    public int[] nextPermutation(int[] nums) {\n        \n    }\n}","class Solution:\n    def nextPermutation(self, nums: List[int]) -> List[int]:\n        pass",{"cpp":614,"java":615,"python":616,"python3":616},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    vector\u003Cint> nextPermutation(vector\u003Cint>& nums) {\n        int pivot = static_cast\u003Cint>(nums.size()) - 2;\n        while (pivot >= 0 && nums[pivot] >= nums[pivot + 1]) --pivot;\n        if (pivot >= 0) {\n            int swapIndex = static_cast\u003Cint>(nums.size()) - 1;\n            while (nums[swapIndex] \u003C= nums[pivot]) --swapIndex;\n            swap(nums[pivot], nums[swapIndex]);\n        }\n        reverse(nums.begin() + pivot + 1, nums.end());\n        return nums;\n    }\n};","class Solution {\n    public int[] nextPermutation(int[] nums) {\n        int i = nums.length - 2;\n        while (i >= 0 && nums[i] >= nums[i + 1]) i--;\n        if (i >= 0) {\n            int j = nums.length - 1;\n            while (nums[j] \u003C= nums[i]) j--;\n            swap(nums, i, j);\n        }\n        reverse(nums, i + 1, nums.length - 1);\n        return nums;\n    }\n\n    private void swap(int[] nums, int i, int j) {\n        int temp = nums[i];\n        nums[i] = nums[j];\n        nums[j] = temp;\n    }\n\n    private void reverse(int[] nums, int left, int right) {\n        while (left \u003C right) swap(nums, left++, right--);\n    }\n}","from typing import List\n\nclass Solution:\n    def nextPermutation(self, nums: List[int]) -> List[int]:\n        i = len(nums) - 2\n        while i >= 0 and nums[i] >= nums[i + 1]:\n            i -= 1\n        if i >= 0:\n            j = len(nums) - 1\n            while nums[j] \u003C= nums[i]:\n                j -= 1\n            nums[i], nums[j] = nums[j], nums[i]\n        left, right = i + 1, len(nums) - 1\n        while left \u003C right:\n            nums[left], nums[right] = nums[right], nums[left]\n            left += 1\n            right -= 1\n        return nums",{"params":618,"methodName":620,"returnType":76},[619],{"name":75,"type":76},"nextPermutation",[622,623],{"id":83,"visibility":84,"input":602,"expected":603},{"id":86,"visibility":84,"input":605,"expected":606},{"id":625,"slug":626,"title":627,"acceptance":42,"difficulty":184,"category":17,"topic":34,"companies":628,"solved":48,"description":629,"examples":631,"constraints":636,"starterCode":639,"referenceSolutions":643,"signature":647,"testCases":652},19,"search-in-rotated-sorted-array","Search in Rotated Sorted Array",[45,46,47],[630],"The integer array nums was sorted in ascending order and then rotated. Find the index of target in O(log n) time, or return -1 if it is absent.",[632,634],{"input":633,"title":55,"output":285},"nums = [4,5,6,7,0,1,2], target = 0",{"input":635,"title":59,"output":503},"nums = [4,5,6,7,0,1,2], target = 3",[637,638],"1 \u003C= nums.length \u003C= 5000","All values in nums are unique.",{"cpp":640,"java":641,"python":642,"python3":642},"class Solution {\npublic:\n    int search(vector\u003Cint>& nums, int target) {\n        \n    }\n};","class Solution {\n    public int search(int[] nums, int target) {\n        \n    }\n}","class Solution:\n    def search(self, nums: List[int], target: int) -> int:\n        pass",{"cpp":644,"java":645,"python":646,"python3":646},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    int search(vector\u003Cint>& nums, int target) {\n        int left = 0;\n        int right = static_cast\u003Cint>(nums.size()) - 1;\n        while (left \u003C= right) {\n            const int middle = left + (right - left) \u002F 2;\n            if (nums[middle] == target) return middle;\n            if (nums[left] \u003C= nums[middle]) {\n                if (nums[left] \u003C= target && target \u003C nums[middle]) right = middle - 1;\n                else left = middle + 1;\n            } else {\n                if (nums[middle] \u003C target && target \u003C= nums[right]) left = middle + 1;\n                else right = middle - 1;\n            }\n        }\n        return -1;\n    }\n};","class Solution {\n    public int search(int[] nums, int target) {\n        int left = 0, right = nums.length - 1;\n        while (left \u003C= right) {\n            int mid = left + (right - left) \u002F 2;\n            if (nums[mid] == target) return mid;\n            if (nums[left] \u003C= nums[mid]) {\n                if (nums[left] \u003C= target && target \u003C nums[mid]) right = mid - 1;\n                else left = mid + 1;\n            } else {\n                if (nums[mid] \u003C target && target \u003C= nums[right]) left = mid + 1;\n                else right = mid - 1;\n            }\n        }\n        return -1;\n    }\n}","from typing import List\n\nclass Solution:\n    def search(self, nums: List[int], target: int) -> int:\n        left, right = 0, len(nums) - 1\n        while left \u003C= right:\n            mid = (left + right) \u002F\u002F 2\n            if nums[mid] == target:\n                return mid\n            if nums[left] \u003C= nums[mid]:\n                if nums[left] \u003C= target \u003C nums[mid]:\n                    right = mid - 1\n                else:\n                    left = mid + 1\n            else:\n                if nums[mid] \u003C target \u003C= nums[right]:\n                    left = mid + 1\n                else:\n                    right = mid - 1\n        return -1",{"params":648,"methodName":651,"returnType":79},[649,650],{"name":75,"type":76},{"name":78,"type":79},"search",[653,654],{"id":83,"visibility":84,"input":633,"expected":285},{"id":86,"visibility":84,"input":635,"expected":503},{"id":656,"slug":657,"title":658,"acceptance":42,"difficulty":184,"category":17,"topic":34,"companies":659,"solved":48,"description":660,"examples":662,"constraints":669,"starterCode":672,"referenceSolutions":676,"signature":680,"testCases":685},20,"find-first-and-last-position-of-element-in-sorted-array","Find First and Last Position of Element in Sorted Array",[45,47],[661],"Given an integer array nums sorted in ascending order and a target, return the starting and ending position of target, or [-1, -1] if it is absent.",[663,666],{"input":664,"title":55,"output":665},"nums = [5,7,7,8,8,10], target = 8","[3,4]",{"input":667,"title":59,"output":668},"nums = [5,7,7,8,8,10], target = 6","[-1,-1]",[670,671],"0 \u003C= nums.length \u003C= 10^5","nums is sorted in ascending order.",{"cpp":673,"java":674,"python":675,"python3":675},"class Solution {\npublic:\n    vector\u003Cint> searchRange(vector\u003Cint>& nums, int target) {\n        \n    }\n};","class Solution {\n    public int[] searchRange(int[] nums, int target) {\n        \n    }\n}","class Solution:\n    def searchRange(self, nums: List[int], target: int) -> List[int]:\n        pass",{"cpp":677,"java":678,"python":679,"python3":679},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    vector\u003Cint> searchRange(vector\u003Cint>& nums, int target) {\n        const auto first = lower_bound(nums.begin(), nums.end(), target);\n        if (first == nums.end() || *first != target) return {-1, -1};\n        const auto last = upper_bound(first, nums.end(), target);\n        return {static_cast\u003Cint>(first - nums.begin()), static_cast\u003Cint>(last - nums.begin() - 1)};\n    }\n};","class Solution {\n    public int[] searchRange(int[] nums, int target) {\n        int left = lowerBound(nums, target);\n        if (left == nums.length || nums[left] != target) return new int[] {-1, -1};\n        int right = lowerBound(nums, target + 1) - 1;\n        return new int[] {left, right};\n    }\n\n    private int lowerBound(int[] nums, int target) {\n        int left = 0, right = nums.length;\n        while (left \u003C right) {\n            int mid = left + (right - left) \u002F 2;\n            if (nums[mid] \u003C target) left = mid + 1;\n            else right = mid;\n        }\n        return left;\n    }\n}","from typing import List\n\nclass Solution:\n    def searchRange(self, nums: List[int], target: int) -> List[int]:\n        def lower_bound(value: int) -> int:\n            left, right = 0, len(nums)\n            while left \u003C right:\n                mid = (left + right) \u002F\u002F 2\n                if nums[mid] \u003C value:\n                    left = mid + 1\n                else:\n                    right = mid\n            return left\n        left = lower_bound(target)\n        if left == len(nums) or nums[left] != target:\n            return [-1, -1]\n        return [left, lower_bound(target + 1) - 1]",{"params":681,"methodName":684,"returnType":76},[682,683],{"name":75,"type":76},{"name":78,"type":79},"searchRange",[686,687],{"id":83,"visibility":84,"input":664,"expected":665},{"id":86,"visibility":84,"input":667,"expected":668},{"id":689,"slug":690,"title":691,"acceptance":42,"difficulty":184,"category":9,"topic":34,"companies":692,"solved":48,"description":693,"examples":695,"constraints":700,"starterCode":702,"referenceSolutions":706,"signature":710,"testCases":714},21,"longest-substring-without-repeating-characters","Longest Substring Without Repeating Characters",[45,46,47],[694],"Given a string s, return the length of its longest substring without repeating characters.",[696,698],{"input":697,"title":55,"output":535},"s = \"abcabcbb\"",{"input":699,"title":59,"output":194},"s = \"bbbbb\"",[701],"0 \u003C= s.length \u003C= 5 * 10^4",{"cpp":703,"java":704,"python":705,"python3":705},"class Solution {\npublic:\n    int lengthOfLongestSubstring(string s) {\n        \n    }\n};","class Solution {\n    public int lengthOfLongestSubstring(String s) {\n        \n    }\n}","class Solution:\n    def lengthOfLongestSubstring(self, s: str) -> int:\n        pass",{"cpp":707,"java":708,"python":709,"python3":709},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    int lengthOfLongestSubstring(string s) {\n        unordered_map\u003Cchar, int> last;\n        int left = 0;\n        int best = 0;\n        for (int right = 0; right \u003C static_cast\u003Cint>(s.size()); ++right) {\n            if (last.count(s[right])) left = max(left, last[s[right]] + 1);\n            last[s[right]] = right;\n            best = max(best, right - left + 1);\n        }\n        return best;\n    }\n};","import java.util.*;\n\nclass Solution {\n    public int lengthOfLongestSubstring(String s) {\n        Map\u003CCharacter, Integer> last = new HashMap\u003C>();\n        int left = 0, best = 0;\n        for (int right = 0; right \u003C s.length(); right++) {\n            char ch = s.charAt(right);\n            if (last.containsKey(ch)) left = Math.max(left, last.get(ch) + 1);\n            last.put(ch, right);\n            best = Math.max(best, right - left + 1);\n        }\n        return best;\n    }\n}","class Solution:\n    def lengthOfLongestSubstring(self, s: str) -> int:\n        last = {}\n        left = best = 0\n        for right, ch in enumerate(s):\n            if ch in last:\n                left = max(left, last[ch] + 1)\n            last[ch] = right\n            best = max(best, right - left + 1)\n        return best",{"params":711,"methodName":713,"returnType":79},[712],{"name":113,"type":114},"lengthOfLongestSubstring",[715,716],{"id":83,"visibility":84,"input":697,"expected":535},{"id":86,"visibility":84,"input":699,"expected":194},{"id":718,"slug":719,"title":720,"acceptance":42,"difficulty":184,"category":6,"topic":34,"companies":721,"solved":48,"description":722,"examples":725,"constraints":731,"starterCode":732,"referenceSolutions":736,"signature":740,"testCases":744},22,"product-of-array-except-self","Product of Array Except Self",[45,46],[723,724],"Return an array where answer[i] is the product of every value in nums except nums[i].","Solve it in O(n) time without using division.",[726,728],{"input":162,"title":55,"output":727},"[24,12,8,6]",{"input":729,"title":59,"output":730},"nums = [-1,1,0,-3,3]","[0,0,9,0,0]",[164],{"cpp":733,"java":734,"python":735,"python3":735},"class Solution {\npublic:\n    vector\u003Cint> productExceptSelf(vector\u003Cint>& nums) {\n        \n    }\n};","class Solution {\n    public int[] productExceptSelf(int[] nums) {\n        \n    }\n}","class Solution:\n    def productExceptSelf(self, nums: List[int]) -> List[int]:\n        pass",{"cpp":737,"java":738,"python":739,"python3":739},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    vector\u003Cint> productExceptSelf(vector\u003Cint>& nums) {\n        vector\u003Cint> answer(nums.size(), 1);\n        int prefix = 1;\n        for (int i = 0; i \u003C static_cast\u003Cint>(nums.size()); ++i) {\n            answer[i] = prefix;\n            prefix *= nums[i];\n        }\n        int suffix = 1;\n        for (int i = static_cast\u003Cint>(nums.size()) - 1; i >= 0; --i) {\n            answer[i] *= suffix;\n            suffix *= nums[i];\n        }\n        return answer;\n    }\n};","class Solution {\n    public int[] productExceptSelf(int[] nums) {\n        int[] answer = new int[nums.length];\n        int prefix = 1;\n        for (int i = 0; i \u003C nums.length; i++) {\n            answer[i] = prefix;\n            prefix *= nums[i];\n        }\n        int suffix = 1;\n        for (int i = nums.length - 1; i >= 0; i--) {\n            answer[i] *= suffix;\n            suffix *= nums[i];\n        }\n        return answer;\n    }\n}","from typing import List\n\nclass Solution:\n    def productExceptSelf(self, nums: List[int]) -> List[int]:\n        answer = [1] * len(nums)\n        prefix = 1\n        for i, value in enumerate(nums):\n            answer[i] = prefix\n            prefix *= value\n        suffix = 1\n        for i in range(len(nums) - 1, -1, -1):\n            answer[i] *= suffix\n            suffix *= nums[i]\n        return answer",{"params":741,"methodName":743,"returnType":76},[742],{"name":75,"type":76},"productExceptSelf",[745,746],{"id":83,"visibility":84,"input":162,"expected":727},{"id":86,"visibility":84,"input":729,"expected":730},{"id":748,"slug":749,"title":750,"acceptance":42,"difficulty":184,"category":19,"topic":34,"companies":751,"solved":48,"description":752,"examples":754,"constraints":759,"starterCode":762,"referenceSolutions":766,"signature":770,"testCases":777},23,"coin-change","Coin Change",[45,47],[753],"Given coin denominations and an amount, return the minimum number of coins needed, or -1 if the amount cannot be formed.",[755,757],{"input":756,"title":55,"output":535},"coins = [1,2,5], amount = 11",{"input":758,"title":59,"output":503},"coins = [2], amount = 3",[760,761],"1 \u003C= coins.length \u003C= 12","0 \u003C= amount \u003C= 10^4",{"cpp":763,"java":764,"python":765,"python3":765},"class Solution {\npublic:\n    int coinChange(vector\u003Cint>& coins, int amount) {\n        \n    }\n};","class Solution {\n    public int coinChange(int[] coins, int amount) {\n        \n    }\n}","class Solution:\n    def coinChange(self, coins: List[int], amount: int) -> int:\n        pass",{"cpp":767,"java":768,"python":769,"python3":769},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    int coinChange(vector\u003Cint>& coins, int amount) {\n        vector\u003Cint> dp(amount + 1, amount + 1);\n        dp[0] = 0;\n        for (int value = 1; value \u003C= amount; ++value) {\n            for (int coin : coins) {\n                if (coin \u003C= value) dp[value] = min(dp[value], dp[value - coin] + 1);\n            }\n        }\n        return dp[amount] > amount ? -1 : dp[amount];\n    }\n};","import java.util.*;\n\nclass Solution {\n    public int coinChange(int[] coins, int amount) {\n        int[] dp = new int[amount + 1];\n        Arrays.fill(dp, amount + 1);\n        dp[0] = 0;\n        for (int value = 1; value \u003C= amount; value++) {\n            for (int coin : coins) {\n                if (coin \u003C= value) dp[value] = Math.min(dp[value], dp[value - coin] + 1);\n            }\n        }\n        return dp[amount] > amount ? -1 : dp[amount];\n    }\n}","from typing import List\n\nclass Solution:\n    def coinChange(self, coins: List[int], amount: int) -> int:\n        dp = [amount + 1] * (amount + 1)\n        dp[0] = 0\n        for value in range(1, amount + 1):\n            for coin in coins:\n                if coin \u003C= value:\n                    dp[value] = min(dp[value], dp[value - coin] + 1)\n        return -1 if dp[amount] > amount else dp[amount]",{"params":771,"methodName":776,"returnType":79},[772,774],{"name":773,"type":76},"coins",{"name":775,"type":79},"amount","coinChange",[778,779],{"id":83,"visibility":84,"input":756,"expected":535},{"id":86,"visibility":84,"input":758,"expected":503},{"id":781,"slug":782,"title":783,"acceptance":42,"difficulty":184,"category":19,"topic":34,"companies":784,"solved":48,"description":785,"examples":787,"constraints":792,"starterCode":793,"referenceSolutions":797,"signature":801,"testCases":805},24,"house-robber","House Robber",[45,46],[786],"Return the maximum amount that can be robbed without choosing two adjacent houses.",[788,789],{"input":160,"title":55,"output":285},{"input":790,"title":59,"output":791},"nums = [2,7,9,3,1]","12",[472],{"cpp":794,"java":795,"python":796,"python3":796},"class Solution {\npublic:\n    int rob(vector\u003Cint>& nums) {\n        \n    }\n};","class Solution {\n    public int rob(int[] nums) {\n        \n    }\n}","class Solution:\n    def rob(self, nums: List[int]) -> int:\n        pass",{"cpp":798,"java":799,"python":800,"python3":800},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    int rob(vector\u003Cint>& nums) {\n        int previous = 0;\n        int current = 0;\n        for (int money : nums) {\n            const int next = max(current, previous + money);\n            previous = current;\n            current = next;\n        }\n        return current;\n    }\n};","class Solution {\n    public int rob(int[] nums) {\n        int previous = 0, current = 0;\n        for (int money : nums) {\n            int next = Math.max(current, previous + money);\n            previous = current;\n            current = next;\n        }\n        return current;\n    }\n}","from typing import List\n\nclass Solution:\n    def rob(self, nums: List[int]) -> int:\n        previous = current = 0\n        for money in nums:\n            previous, current = current, max(current, previous + money)\n        return current",{"params":802,"methodName":804,"returnType":79},[803],{"name":75,"type":76},"rob",[806,807],{"id":83,"visibility":84,"input":160,"expected":285},{"id":86,"visibility":84,"input":790,"expected":791},{"id":809,"slug":810,"title":811,"acceptance":42,"difficulty":184,"category":6,"topic":34,"companies":812,"solved":48,"description":813,"examples":815,"constraints":820,"starterCode":821,"referenceSolutions":825,"signature":829,"testCases":833},25,"jump-game","Jump Game",[45,47],[814],"Each value is the maximum jump length from that position. Determine whether the last index is reachable.",[816,818],{"input":817,"title":55,"output":96},"nums = [2,3,1,1,4]",{"input":819,"title":59,"output":99},"nums = [3,2,1,0,4]",[225],{"cpp":822,"java":823,"python":824,"python3":824},"class Solution {\npublic:\n    bool canJump(vector\u003Cint>& nums) {\n        \n    }\n};","class Solution {\n    public boolean canJump(int[] nums) {\n        \n    }\n}","class Solution:\n    def canJump(self, nums: List[int]) -> bool:\n        pass",{"cpp":826,"java":827,"python":828,"python3":828},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    bool canJump(vector\u003Cint>& nums) {\n        int farthest = 0;\n        for (int i = 0; i \u003C static_cast\u003Cint>(nums.size()); ++i) {\n            if (i > farthest) return false;\n            farthest = max(farthest, i + nums[i]);\n        }\n        return true;\n    }\n};","class Solution {\n    public boolean canJump(int[] nums) {\n        int farthest = 0;\n        for (int i = 0; i \u003C nums.length; i++) {\n            if (i > farthest) return false;\n            farthest = Math.max(farthest, i + nums[i]);\n        }\n        return true;\n    }\n}","from typing import List\n\nclass Solution:\n    def canJump(self, nums: List[int]) -> bool:\n        farthest = 0\n        for i, jump in enumerate(nums):\n            if i > farthest:\n                return False\n            farthest = max(farthest, i + jump)\n        return True",{"params":830,"methodName":832,"returnType":116},[831],{"name":75,"type":76},"canJump",[834,835],{"id":83,"visibility":84,"input":817,"expected":96},{"id":86,"visibility":84,"input":819,"expected":99},{"id":837,"slug":838,"title":839,"acceptance":42,"difficulty":184,"category":17,"topic":34,"companies":840,"solved":48,"description":841,"examples":843,"constraints":848,"starterCode":850,"referenceSolutions":854,"signature":858,"testCases":862},26,"find-minimum-in-rotated-sorted-array","Find Minimum in Rotated Sorted Array",[46,47],[842],"Given a rotated sorted array of unique values, return its minimum element.",[844,846],{"input":845,"title":55,"output":194},"nums = [3,4,5,1,2]",{"input":847,"title":59,"output":133},"nums = [4,5,6,7,0,1,2]",[637,849],"All values are unique.",{"cpp":851,"java":852,"python":853,"python3":853},"class Solution {\npublic:\n    int findMin(vector\u003Cint>& nums) {\n        \n    }\n};","class Solution {\n    public int findMin(int[] nums) {\n        \n    }\n}","class Solution:\n    def findMin(self, nums: List[int]) -> int:\n        pass",{"cpp":855,"java":856,"python":857,"python3":857},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    int findMin(vector\u003Cint>& nums) {\n        int left = 0;\n        int right = static_cast\u003Cint>(nums.size()) - 1;\n        while (left \u003C right) {\n            const int middle = left + (right - left) \u002F 2;\n            if (nums[middle] > nums[right]) left = middle + 1;\n            else right = middle;\n        }\n        return nums[left];\n    }\n};","class Solution {\n    public int findMin(int[] nums) {\n        int left = 0, right = nums.length - 1;\n        while (left \u003C right) {\n            int mid = left + (right - left) \u002F 2;\n            if (nums[mid] > nums[right]) left = mid + 1;\n            else right = mid;\n        }\n        return nums[left];\n    }\n}","from typing import List\n\nclass Solution:\n    def findMin(self, nums: List[int]) -> int:\n        left, right = 0, len(nums) - 1\n        while left \u003C right:\n            mid = (left + right) \u002F\u002F 2\n            if nums[mid] > nums[right]:\n                left = mid + 1\n            else:\n                right = mid\n        return nums[left]",{"params":859,"methodName":861,"returnType":79},[860],{"name":75,"type":76},"findMin",[863,864],{"id":83,"visibility":84,"input":845,"expected":194},{"id":86,"visibility":84,"input":847,"expected":133},{"id":866,"slug":867,"title":868,"acceptance":42,"difficulty":184,"category":6,"topic":34,"companies":869,"solved":48,"description":870,"examples":872,"constraints":877,"starterCode":879,"referenceSolutions":883,"signature":887,"testCases":893},27,"kth-largest-element-in-an-array","Kth Largest Element in an Array",[45,46,47],[871],"Given an integer array nums and an integer k, return the kth largest element.",[873,875],{"input":874,"title":55,"output":130},"nums = [3,2,1,5,6,4], k = 2",{"input":876,"title":59,"output":285},"nums = [3,2,3,1,2,4,5,5,6], k = 4",[878],"1 \u003C= k \u003C= nums.length \u003C= 10^5",{"cpp":880,"java":881,"python":882,"python3":882},"class Solution {\npublic:\n    int findKthLargest(vector\u003Cint>& nums, int k) {\n        \n    }\n};","class Solution {\n    public int findKthLargest(int[] nums, int k) {\n        \n    }\n}","class Solution:\n    def findKthLargest(self, nums: List[int], k: int) -> int:\n        pass",{"cpp":884,"java":885,"python":886,"python3":886},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    int findKthLargest(vector\u003Cint>& nums, int k) {\n        priority_queue\u003Cint, vector\u003Cint>, greater\u003Cint>> heap;\n        for (int value : nums) {\n            heap.push(value);\n            if (static_cast\u003Cint>(heap.size()) > k) heap.pop();\n        }\n        return heap.top();\n    }\n};","import java.util.*;\n\nclass Solution {\n    public int findKthLargest(int[] nums, int k) {\n        PriorityQueue\u003CInteger> heap = new PriorityQueue\u003C>();\n        for (int value : nums) {\n            heap.offer(value);\n            if (heap.size() > k) heap.poll();\n        }\n        return heap.peek();\n    }\n}","from typing import List\nimport heapq\n\nclass Solution:\n    def findKthLargest(self, nums: List[int], k: int) -> int:\n        return heapq.nlargest(k, nums)[-1]",{"params":888,"methodName":892,"returnType":79},[889,890],{"name":75,"type":76},{"name":891,"type":79},"k","findKthLargest",[894,895],{"id":83,"visibility":84,"input":874,"expected":130},{"id":86,"visibility":84,"input":876,"expected":285},{"id":897,"slug":898,"title":899,"acceptance":42,"difficulty":184,"category":19,"topic":34,"companies":900,"solved":48,"description":901,"examples":903,"constraints":908,"starterCode":911,"referenceSolutions":915,"signature":919,"testCases":925},28,"word-break","Word Break",[45,46],[902],"Determine whether s can be segmented into one or more words from wordDict.",[904,906],{"input":905,"title":55,"output":96},"s = \"leetcode\", wordDict = [\"leet\",\"code\"]",{"input":907,"title":59,"output":99},"s = \"catsandog\", wordDict = [\"cats\",\"dog\",\"sand\",\"and\",\"cat\"]",[909,910],"1 \u003C= s.length \u003C= 300","1 \u003C= wordDict.length \u003C= 1000",{"cpp":912,"java":913,"python":914,"python3":914},"class Solution {\npublic:\n    bool wordBreak(string s, vector\u003Cstring>& wordDict) {\n        \n    }\n};","class Solution {\n    public boolean wordBreak(String s, String[] wordDict) {\n        \n    }\n}","class Solution:\n    def wordBreak(self, s: str, wordDict: List[str]) -> bool:\n        pass",{"cpp":916,"java":917,"python":918,"python3":918},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    bool wordBreak(string s, vector\u003Cstring>& wordDict) {\n        unordered_set\u003Cstring> words(wordDict.begin(), wordDict.end());\n        vector\u003Cbool> dp(s.size() + 1, false);\n        dp[0] = true;\n        for (int end = 1; end \u003C= static_cast\u003Cint>(s.size()); ++end) {\n            for (int start = 0; start \u003C end; ++start) {\n                if (dp[start] && words.count(s.substr(start, end - start))) {\n                    dp[end] = true;\n                    break;\n                }\n            }\n        }\n        return dp.back();\n    }\n};","import java.util.*;\n\nclass Solution {\n    public boolean wordBreak(String s, String[] wordDict) {\n        Set\u003CString> words = new HashSet\u003C>(Arrays.asList(wordDict));\n        boolean[] dp = new boolean[s.length() + 1];\n        dp[0] = true;\n        for (int end = 1; end \u003C= s.length(); end++) {\n            for (int start = 0; start \u003C end; start++) {\n                if (dp[start] && words.contains(s.substring(start, end))) {\n                    dp[end] = true;\n                    break;\n                }\n            }\n        }\n        return dp[s.length()];\n    }\n}","from typing import List\n\nclass Solution:\n    def wordBreak(self, s: str, wordDict: List[str]) -> bool:\n        words = set(wordDict)\n        dp = [False] * (len(s) + 1)\n        dp[0] = True\n        for end in range(1, len(s) + 1):\n            for start in range(end):\n                if dp[start] and s[start:end] in words:\n                    dp[end] = True\n                    break\n        return dp[-1]",{"params":920,"methodName":924,"returnType":116},[921,922],{"name":113,"type":114},{"name":923,"type":360},"wordDict","wordBreak",[926,927],{"id":83,"visibility":84,"input":905,"expected":96},{"id":86,"visibility":84,"input":907,"expected":99},{"id":929,"slug":930,"title":931,"acceptance":42,"difficulty":932,"category":23,"topic":34,"companies":933,"solved":48,"description":934,"examples":936,"constraints":942,"starterCode":944,"referenceSolutions":948,"signature":952,"testCases":957},29,"trapping-rain-water","Trapping Rain Water","hard",[45,46,47],[935],"Given bar heights, compute how much rain water can be trapped.",[937,939],{"input":938,"title":55,"output":191},"height = [0,1,0,2,1,0,1,3,2,1,2,1]",{"input":940,"title":59,"output":941},"height = [4,2,0,3,2,5]","9",[943],"0 \u003C= height.length \u003C= 2 * 10^4",{"cpp":945,"java":946,"python":947,"python3":947},"class Solution {\npublic:\n    int trap(vector\u003Cint>& height) {\n        \n    }\n};","class Solution {\n    public int trap(int[] height) {\n        \n    }\n}","class Solution:\n    def trap(self, height: List[int]) -> int:\n        pass",{"cpp":949,"java":950,"python":951,"python3":951},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    int trap(vector\u003Cint>& height) {\n        int left = 0;\n        int right = static_cast\u003Cint>(height.size()) - 1;\n        int leftMax = 0;\n        int rightMax = 0;\n        int water = 0;\n        while (left \u003C right) {\n            if (height[left] \u003C height[right]) {\n                leftMax = max(leftMax, height[left]);\n                water += leftMax - height[left++];\n            } else {\n                rightMax = max(rightMax, height[right]);\n                water += rightMax - height[right--];\n            }\n        }\n        return water;\n    }\n};","class Solution {\n    public int trap(int[] height) {\n        int left = 0, right = height.length - 1;\n        int leftMax = 0, rightMax = 0, water = 0;\n        while (left \u003C right) {\n            if (height[left] \u003C height[right]) {\n                leftMax = Math.max(leftMax, height[left]);\n                water += leftMax - height[left++];\n            } else {\n                rightMax = Math.max(rightMax, height[right]);\n                water += rightMax - height[right--];\n            }\n        }\n        return water;\n    }\n}","from typing import List\n\nclass Solution:\n    def trap(self, height: List[int]) -> int:\n        left, right = 0, len(height) - 1\n        left_max = right_max = water = 0\n        while left \u003C right:\n            if height[left] \u003C height[right]:\n                left_max = max(left_max, height[left])\n                water += left_max - height[left]\n                left += 1\n            else:\n                right_max = max(right_max, height[right])\n                water += right_max - height[right]\n                right -= 1\n        return water",{"params":953,"methodName":956,"returnType":79},[954],{"name":955,"type":76},"height","trap",[958,959],{"id":83,"visibility":84,"input":938,"expected":191},{"id":86,"visibility":84,"input":940,"expected":941},{"id":961,"slug":962,"title":963,"acceptance":42,"difficulty":932,"category":15,"topic":34,"companies":964,"solved":48,"description":965,"examples":967,"constraints":972,"starterCode":974,"referenceSolutions":978,"signature":982,"testCases":986},30,"longest-valid-parentheses","Longest Valid Parentheses",[45,46],[966],"Given a string containing only parentheses, return the length of the longest valid parentheses substring.",[968,970],{"input":969,"title":55,"output":221},"s = \"(()\"",{"input":971,"title":59,"output":285},"s = \")()())\"",[973],"0 \u003C= s.length \u003C= 3 * 10^4",{"cpp":975,"java":976,"python":977,"python3":977},"class Solution {\npublic:\n    int longestValidParentheses(string s) {\n        \n    }\n};","class Solution {\n    public int longestValidParentheses(String s) {\n        \n    }\n}","class Solution:\n    def longestValidParentheses(self, s: str) -> int:\n        pass",{"cpp":979,"java":980,"python":981,"python3":981},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    int longestValidParentheses(string s) {\n        stack\u003Cint> indexes;\n        indexes.push(-1);\n        int best = 0;\n        for (int i = 0; i \u003C static_cast\u003Cint>(s.size()); ++i) {\n            if (s[i] == '(') indexes.push(i);\n            else {\n                indexes.pop();\n                if (indexes.empty()) indexes.push(i);\n                else best = max(best, i - indexes.top());\n            }\n        }\n        return best;\n    }\n};","import java.util.*;\n\nclass Solution {\n    public int longestValidParentheses(String s) {\n        Deque\u003CInteger> stack = new ArrayDeque\u003C>();\n        stack.push(-1);\n        int best = 0;\n        for (int i = 0; i \u003C s.length(); i++) {\n            if (s.charAt(i) == '(') stack.push(i);\n            else {\n                stack.pop();\n                if (stack.isEmpty()) stack.push(i);\n                else best = Math.max(best, i - stack.peek());\n            }\n        }\n        return best;\n    }\n}","class Solution:\n    def longestValidParentheses(self, s: str) -> int:\n        stack = [-1]\n        best = 0\n        for i, ch in enumerate(s):\n            if ch == \"(\":\n                stack.append(i)\n            else:\n                stack.pop()\n                if not stack:\n                    stack.append(i)\n                else:\n                    best = max(best, i - stack[-1])\n        return best",{"params":983,"methodName":985,"returnType":79},[984],{"name":113,"type":114},"longestValidParentheses",[987,988],{"id":83,"visibility":84,"input":969,"expected":221},{"id":86,"visibility":84,"input":971,"expected":285},{"id":990,"slug":991,"title":992,"acceptance":42,"difficulty":932,"category":6,"topic":34,"companies":993,"solved":48,"description":994,"examples":996,"constraints":1001,"starterCode":1002,"referenceSolutions":1006,"signature":1010,"testCases":1014},31,"first-missing-positive","First Missing Positive",[46,47],[995],"Return the smallest positive integer missing from an unsorted array in O(n) time and O(1) extra space.",[997,999],{"input":998,"title":55,"output":535},"nums = [1,2,0]",{"input":1000,"title":59,"output":221},"nums = [3,4,-1,1]",[164],{"cpp":1003,"java":1004,"python":1005,"python3":1005},"class Solution {\npublic:\n    int firstMissingPositive(vector\u003Cint>& nums) {\n        \n    }\n};","class Solution {\n    public int firstMissingPositive(int[] nums) {\n        \n    }\n}","class Solution:\n    def firstMissingPositive(self, nums: List[int]) -> int:\n        pass",{"cpp":1007,"java":1008,"python":1009,"python3":1009},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    int firstMissingPositive(vector\u003Cint>& nums) {\n        for (int i = 0; i \u003C static_cast\u003Cint>(nums.size()); ++i) {\n            while (nums[i] > 0 && nums[i] \u003C= static_cast\u003Cint>(nums.size()) &&\n                   nums[nums[i] - 1] != nums[i]) {\n                swap(nums[i], nums[nums[i] - 1]);\n            }\n        }\n        for (int i = 0; i \u003C static_cast\u003Cint>(nums.size()); ++i) {\n            if (nums[i] != i + 1) return i + 1;\n        }\n        return static_cast\u003Cint>(nums.size()) + 1;\n    }\n};","class Solution {\n    public int firstMissingPositive(int[] nums) {\n        for (int i = 0; i \u003C nums.length; i++) {\n            while (nums[i] > 0 && nums[i] \u003C= nums.length && nums[nums[i] - 1] != nums[i]) {\n                int target = nums[i] - 1;\n                int temp = nums[target];\n                nums[target] = nums[i];\n                nums[i] = temp;\n            }\n        }\n        for (int i = 0; i \u003C nums.length; i++) {\n            if (nums[i] != i + 1) return i + 1;\n        }\n        return nums.length + 1;\n    }\n}","from typing import List\n\nclass Solution:\n    def firstMissingPositive(self, nums: List[int]) -> int:\n        for i in range(len(nums)):\n            while 0 \u003C nums[i] \u003C= len(nums) and nums[nums[i] - 1] != nums[i]:\n                target = nums[i] - 1\n                nums[target], nums[i] = nums[i], nums[target]\n        for i, value in enumerate(nums, 1):\n            if value != i:\n                return i\n        return len(nums) + 1",{"params":1011,"methodName":1013,"returnType":79},[1012],{"name":75,"type":76},"firstMissingPositive",[1015,1016],{"id":83,"visibility":84,"input":998,"expected":535},{"id":86,"visibility":84,"input":1000,"expected":221},{"id":1018,"slug":1019,"title":1020,"acceptance":42,"difficulty":932,"category":6,"topic":34,"companies":1021,"solved":48,"description":1022,"examples":1024,"constraints":1029,"starterCode":1031,"referenceSolutions":1035,"signature":1039,"testCases":1043},32,"candy","Candy",[45,46],[1023],"Give every child at least one candy while higher-rated adjacent children receive more. Return the minimum total.",[1025,1027],{"input":1026,"title":55,"output":130},"ratings = [1,0,2]",{"input":1028,"title":59,"output":285},"ratings = [1,2,2]",[1030],"1 \u003C= ratings.length \u003C= 2 * 10^4",{"cpp":1032,"java":1033,"python":1034,"python3":1034},"class Solution {\npublic:\n    int candy(vector\u003Cint>& ratings) {\n        \n    }\n};","class Solution {\n    public int candy(int[] ratings) {\n        \n    }\n}","class Solution:\n    def candy(self, ratings: List[int]) -> int:\n        pass",{"cpp":1036,"java":1037,"python":1038,"python3":1038},"#include \u003Cbits\u002Fstdc++.h>\nusing namespace std;\n\nclass Solution {\npublic:\n    int candy(vector\u003Cint>& ratings) {\n        vector\u003Cint> candies(ratings.size(), 1);\n        for (int i = 1; i \u003C static_cast\u003Cint>(ratings.size()); ++i) {\n            if (ratings[i] > ratings[i - 1]) candies[i] = candies[i - 1] + 1;\n        }\n        for (int i = static_cast\u003Cint>(ratings.size()) - 2; i >= 0; --i) {\n            if (ratings[i] > ratings[i + 1]) candies[i] = max(candies[i], candies[i + 1] + 1);\n        }\n        return accumulate(candies.begin(), candies.end(), 0);\n    }\n};","import java.util.*;\n\nclass Solution {\n    public int candy(int[] ratings) {\n        int[] candies = new int[ratings.length];\n        Arrays.fill(candies, 1);\n        for (int i = 1; i \u003C ratings.length; i++) {\n            if (ratings[i] > ratings[i - 1]) candies[i] = candies[i - 1] + 1;\n        }\n        for (int i = ratings.length - 2; i >= 0; i--) {\n            if (ratings[i] > ratings[i + 1]) candies[i] = Math.max(candies[i], candies[i + 1] + 1);\n        }\n        int total = 0;\n        for (int value : candies) total += value;\n        return total;\n    }\n}","from typing import List\n\nclass Solution:\n    def candy(self, ratings: List[int]) -> int:\n        candies = [1] * len(ratings)\n        for i in range(1, len(ratings)):\n            if ratings[i] > ratings[i - 1]:\n                candies[i] = candies[i - 1] + 1\n        for i in range(len(ratings) - 2, -1, -1):\n            if ratings[i] > ratings[i + 1]:\n                candies[i] = max(candies[i], candies[i + 1] + 1)\n        return sum(candies)",{"params":1040,"methodName":1019,"returnType":79},[1041],{"name":1042,"type":76},"ratings",[1044,1045],{"id":83,"visibility":84,"input":1026,"expected":130},{"id":86,"visibility":84,"input":1028,"expected":285}]