LeetCode
文章平均质量分 50
负责leetcode解题集合,一般采用方法为非暴力法
Wesley@
这个作者很懒,什么都没留下…
展开
-
计算表达式(中缀转后缀表达式,逆波兰式结果计算)
前缀,中缀,后缀表达式(逆波兰表达式)参考: https://www.cnblogs.com/chensongxian/p/7059802.html中缀表达式中缀表达式就是常见的运算表达式,如 (3 + 4) * 5 - 6前缀表达式介绍前缀表达式又称为波兰式,前缀表达式的运算符位于操作数之前比如: - * + 3 4 5 6前缀表达式的计算机求值从右至左扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符弹出栈顶的两个数字,并进行运算,将结果压入堆栈。重复上述过程,直到最后的一个数字,即为原创 2021-05-26 21:40:10 · 265 阅读 · 0 评论 -
LC 260. Single Number III 位运算解法
DescriptionGiven an integer array nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once. You can return the answer in any order.Follow up: Your algorithm should r原创 2021-03-04 10:24:39 · 195 阅读 · 1 评论 -
LC238 Product of Array Except Self
DescriptionGiven an array nums of n integers where n > 1, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i].Example:Input: [1,2,3,4]Output: [24,12,8,6]Constraint: It’s guaranteed that th原创 2021-03-02 15:26:12 · 113 阅读 · 0 评论 -
LC312 Burst Balloons (动态规划 + 分治法)
思路这题如果正向思考很难解决:先戳破第 i 个气球,会发现后面的计算过于复杂。但是如果逆向思考:最后戳破第 i 个气球,那么区间范围 [i, j] 中的所有除它以外的气球都破了,就很方便计算出结果。状态转移方程是:resLeft + resRight + left * nums[k] * right自顶向下带有记忆的分治int[][] dp = null; public int maxCoins2(int[] nums) { if (nums.length == 0)原创 2020-12-17 11:55:52 · 203 阅读 · 0 评论 -
LC241 Different Ways to Add Parentheses (高级dp,1 ms)
LC241 Different Ways to Add Parentheses这题贴出来的原因:这题的动态规划解法,是我自己想出来的,我感觉这题的动态规划算是有点难度了(普通的二维dp的进阶进阶版本),而且我做到了 1 ms beats 99.93%,37.3 mb beats 96.98%。还是很有成就感的。动态规划动态规划虽然代码多了,逻辑复杂了,但是时间空间都缩减了很多。List<Integer> data = new ArrayList<>(); List&原创 2020-12-15 22:38:53 · 147 阅读 · 0 评论 -
LC300. Longest Increasing Subsequence (两种dp解法)
LC300. Longest Increasing Subsequence (Medium)思路第一种是寻常的解法,从某个数字往前搜索dp数组,dp表示到这个数字结尾到最大递增序列。第二种也是往前找,只不过因为保存的是当前递增序列,所以找的范围要少很多。其实这里可以第二步优化:由于保存到是递增序列,那么可以使用二分查找加速。解法1public int lengthOfLIS(int[] nums) { int[] dp = new int[nums.length];原创 2020-12-15 11:26:35 · 286 阅读 · 1 评论 -
回溯法leetcode题目集合
回溯法leetcode题目集合Subsets :https://leetcode.com/problems/subsets/public List<List<Integer>> subsets(int[] nums) { List<List<Integer>> list = new ArrayList<>(); Arrays.sort(nums); backtrack(list, new ArrayList<&g原创 2020-10-04 08:56:16 · 208 阅读 · 0 评论 -
LeetCode github集合,附CMU大神整理笔记
Github LeetCode集合本人所有做过的题目都写在一个java项目中,同步到github中了,算是见证自己的进步。github目前同步的题目是2020-09-17日之后写的题。之前写过的题会陆续跟新到github中。目前大概280个题目Github 项目链接:https://github.com/sunliancheng/leetcode_github...原创 2020-09-24 22:58:54 · 1605 阅读 · 0 评论 -
LC371 Sum of Two Integers
Description:Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -.Example 1:Input: a = 1, b = 2Output: 3Example 2:Input: a = -2, b = 3Output: 1Solution:妈妈问我为啥跪着写代码!!!xor:表示不算进位符的两数相加结果(a ^ b)carry : 表示进位符原创 2020-09-24 22:53:20 · 174 阅读 · 0 评论 -
LeetCode 93 Restore IP Addresses, 1 ms > 99.64%, 38.3 mb > 96.64%
Description:Given a string s containing only digits, return all possible valid IP addresses that can be obtained from s. You can return them in any order.A valid IP address consists of exactly four integers, each integer is between 0 and 255, separated b原创 2020-09-17 13:06:35 · 133 阅读 · 0 评论 -
LeetCode 1143. Longest Common Subsequence
Description:Given two strings text1 and text2, return the length of their longest common subsequence.A subsequence of a string is a new string generated from the original string with some characters(can be none) deleted without changing the relative orde原创 2020-07-20 19:24:38 · 115 阅读 · 0 评论 -
LeetCode 152. Maximum Product Subarray
Description:Given an integer array nums, find the contiguous subarray within an array (containing at least one number) which has the largest product.Example 1:Input: [2,3,-2,4]Output: 6Explanation: [2,3] has the largest product 6.Example 2:Input: [-原创 2020-09-11 23:22:32 · 131 阅读 · 0 评论 -
LC 905 && 824 && 146 && 268
LC 905 : Sort Array By ParityDescription:Given an array A of non-negative integers, return an array consisting of all the even elements of A, followed by all the odd elements of A.You may return any answer array that satisfies this condition.Example 1:原创 2020-08-22 11:17:51 · 181 阅读 · 0 评论 -
435. Non-overlapping Intervals
Description:Given a collection of intervals, find the minimum number of intervals you need to remove to make the rest of the intervals non-overlapping.Example 1:Input: [[1,2],[2,3],[3,4],[1,3]]Output: 1Explanation: [1,3] can be removed and the rest of原创 2020-08-16 23:48:18 · 162 阅读 · 0 评论 -
LeetCode 326. Power of Three
Description:Given an integer, write a function to determine if it is a power of three.Example 1:Input: 27Output: trueSolution:这题摘出来主要是因为:return n == 1;可以替换:if (n == 1) return true;else return false;public boolean isPowerOfThree(int n) {原创 2020-08-09 23:40:03 · 164 阅读 · 0 评论 -
LeetCode 342. Power of Four
Description:Given an integer (signed 32 bits), write a function to check whether it is a power of 4.Example 1:Input: 16Output: trueSolution:首先 num & (num - 1) == 0 能保证这个数是2的倍数,举例如下:假设 num = 200001 01000001 0011---------0001 0000假设 num = 16原创 2020-08-08 11:47:32 · 212 阅读 · 0 评论 -
LeetCode 442. Find All Duplicates in an Array
Description:Given an array of integers, 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once.Find all the elements that appear twice in this array.Could you do it without extra space and in O(n) runtime?Example:Input:[4原创 2020-08-06 22:29:38 · 146 阅读 · 0 评论 -
LeetCode 322. Coin Change
Description:You are given coins of different denominations and a total amount of money amount. Write a function to compute the fewest number of coins that you need to make up that amount. If that amount of money cannot be made up by any combination of the原创 2020-08-02 12:45:20 · 131 阅读 · 0 评论 -
LeetCode 520. Detect Capital
Description:Given a word, you need to judge whether the usage of capitals in it is right or not.We define the usage of capitals in a word to be right when one of the following cases holds:All letters in this word are capitals, like “USA”.All letters in原创 2020-08-02 11:48:08 · 165 阅读 · 0 评论 -
LeetCode 207. Course Schedule
Description:There are a total of numCourses courses you have to take, labeled from 0 to numCourses-1.Some courses may have prerequisites, for example to take course 0 you have to first take course 1, which is expressed as a pair: [0,1]Given the total nu原创 2020-07-23 12:00:19 · 136 阅读 · 0 评论 -
LeetCode 12. Integer to Roman
Description:Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M.Symbol ValueI 1V 5X 10L 50C 100D 500M 1000For example, two is原创 2020-07-22 22:02:13 · 117 阅读 · 0 评论 -
LeetCode 1049. Last Stone Weight II
Description:We have a collection of rocks, each rock has a positive integer weight.Each turn, we choose any two rocks and smash them together. Suppose the stones have weights x and y with x <= y. The result of this smash is:If x == y, both stones a原创 2020-07-22 01:03:45 · 251 阅读 · 0 评论 -
474. Ones and Zeroes
Description:Given an array, strs, with strings consisting of only 0s and 1s. Also two integers m and n.Now your task is to find the maximum number of strings that you can form with given m 0s and n 1s. Each 0 and 1 can be used at most once.Example 1:In原创 2020-07-22 00:36:50 · 138 阅读 · 0 评论 -
LeetCode 416. Partition Equal Subset Sum
Description:Given a non-empty array containing only positive integers, find if the array can be partitioned into two subsets such that the sum of elements in both subsets is equal.Note:Each of the array element will not exceed 100.The array size will n原创 2020-07-21 00:17:10 · 119 阅读 · 0 评论 -
LeetCode 78. Subsets
Description:Given a set of distinct integers, nums, return all possible subsets (the power set).Note: The solution set must not contain duplicate subsets.Example:Input: nums = [1,2,3]Output:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]Solution原创 2020-07-12 01:34:04 · 116 阅读 · 0 评论 -
LeetCode 463. Island Perimeter
DescriptionYou are given a map in form of a two-dimensional integer grid where 1 represents land and 0 represents water.Grid cells are connected horizontally/vertically (not diagonally). The grid is completely surrounded by water, and there is exactly on原创 2020-07-10 00:58:09 · 104 阅读 · 0 评论 -
LeetCode 15. 3Sum
DescriptionGiven an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.Note:The solution set must not contain duplicate triplets.Example:Given array n原创 2020-07-10 00:13:40 · 108 阅读 · 0 评论 -
LeetCode 264. Ugly Number II
DescriptionWrite a program to find the n-th ugly number.Ugly numbers are positive numbers whose prime factors only include 2, 3, 5.Example:Input: n = 10Output: 12Explanation: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 is the sequence of the first 10 ugly numbers原创 2020-07-05 13:02:06 · 142 阅读 · 0 评论 -
LeetCode 290. Word Pattern
Description:Given a pattern and a string str, find if str follows the same pattern.Here follow means a full match, such that there is a bijection between a letter in pattern and a non-empty word in str.Example 1:Input: pattern = “abba”, str = “dog cat原创 2020-06-22 12:47:07 · 144 阅读 · 0 评论 -
LeetCode 32. Longest Valid Parentheses
Description:Add to ListShareGiven a string containing just the characters ‘(’ and ‘)’, find the length of the longest valid (well-formed) parentheses substring.Example 1:Input: “(()”Output: 2Explanation: The longest valid parentheses substring is “(原创 2020-06-21 01:02:25 · 130 阅读 · 0 评论 -
LeetCode 6. ZigZag Conversion
Description:The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)P A H NA P L S I I GY I RAnd then read line by line: “PAH原创 2020-06-20 20:12:59 · 178 阅读 · 1 评论 -
LeetCode 7. Reverse Integer
Description:Given a 32-bit signed integer, reverse digits of an integer.Example 1:Input: 123Output: 321Solution:思路:因为是逆序,可以考虑到使用 Queue,先进先出。PS:由于这道题目要求int类型overflow后return 0,所以需要用double来判断是否符合要求int reverse(int x) { Queue<Integer原创 2020-06-20 19:39:09 · 140 阅读 · 0 评论 -
LeetCode 1.Two Sum
Description:Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the same element twice.Example:Given nums = [2, 7,原创 2020-06-20 16:48:04 · 133 阅读 · 1 评论 -
LeetCode 5. Longest Palindromic Substrin
Description:Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.Example 1:Input: “babad”Output: “bab”Note: “aba” is also a valid answer.Solution:思路:本题的核心思想就是用双指针 low 和 high 来表示回文的头尾位置( l原创 2020-06-08 00:06:20 · 142 阅读 · 0 评论 -
LeetCode 180. Consecutive Numbers
Description:Write a SQL query to find all numbers that appear at least three times consecutively.±—±----+| Id | Num |±—±----+| 1 | 1 || 2 | 1 || 3 | 1 || 4 | 2 || 5 | 1 || 6 | 2 || 7 | 2 |±—±----+For example, given the abo原创 2020-06-04 01:32:22 · 257 阅读 · 0 评论 -
LeetCode 178. Rank Scores
Description:Write a SQL query to rank scores. If there is a tie between two scores, both should have the same ranking. Note that after a tie, the next ranking number should be the next consecutive integer value. In other words, there should be no “holes”原创 2020-06-04 01:20:57 · 229 阅读 · 0 评论 -
LeetCode 177. Nth Highest Salary (mysql limit 和 offset用法)
Description:Write a SQL query to get the nth highest salary from the Employee table.±—±-------+| Id | Salary |±—±-------+| 1 | 100 || 2 | 200 || 3 | 300 |±—±-------+For example, given the above Employee table, the nth highest salary wh原创 2020-06-04 00:43:10 · 195 阅读 · 0 评论 -
LeetCode 175. Combine Two Tables (SQL语句中on和where的区别)
Description:Table: Person±------------±--------+| Column Name | Type |±------------±--------+| PersonId | int || FirstName | varchar || LastName | varchar |±------------±--------+PersonId is the primary key column for this table.Ta原创 2020-06-04 00:19:37 · 240 阅读 · 0 评论 -
LeetCode 3. Longest Substring Without Repeating Characters
Descrpiton:Given a string, find the length of the longest substring without repeating characters.Example 1:Input: “abcabcbb”Output: 3Explanation: The answer is “abc”, with the length of 3.Solution:利用hashmap不可重复来去重public int lengthOfLongestSubstring原创 2020-06-02 19:16:26 · 142 阅读 · 0 评论 -
字节跳动实习 多次出现的高频算法题
Descrpiton:给定一个数组,比如说int[] a = {1, 4, -5, 9, 8, 3, -6};求出其最大子数组和(最大子数组必须是连续的)其最大子数组为 9, 8, 3 ,所以和为 20Solution:dp最重要的就是状态转移方程(这一步和前一步的关系):dp[i] = max(dp[i - 1] + array[i], array[i])这里dp代表的是前 i 个元素最大子数组和(必须使用到第i - 1个元素,如果 dp[i-1] + array[i] > ar原创 2020-06-02 18:11:36 · 684 阅读 · 0 评论