LeetCode算法实战
liangyy75
暂无
展开
-
LeetCode——1.Two Sum
1.题目描述2.解题思路解法1解法2解法33.疑问1.题目描述原题链接:Two SumGiven an array of integers, return indices of the two numbers such that they add up to a specific target.(给出一组整数和特定值,如果这组整数中有两个数的...原创 2018-09-08 22:03:28 · 105 阅读 · 0 评论 -
LeetCode——64. Minimum Path Sum
1.题目大意给出一个m×n的由非负数组成的二维数组,找到一条做左上角到右下角的路径,使得经过的路途上的数的和最小。这里的限制是路径只能向右或者向下。Example:Input:[[1,3,1],[1,5,1],[4,2,1]]Output: 7Explanation: Because the path 1→3→1→1→1 minimizes the sum.2.解题思路...原创 2018-12-01 12:28:24 · 116 阅读 · 0 评论 -
LeetCode——16. 3Sum Closest
1.题目大意给出一个数组和目标值,找到数组中三个数使得这三个数的和最接近目标值,返回这三个数的和。假定每个数组有且只有一个答案。2.解题方法这道题用暴力破解的时间复杂度会达到O(n3),所以最好还是和之前的我写的leetcode的第一题:Two Sum一样,用一层循环固定一个值,再用两个指针一左一右的不断逼近来找到最接近目标值的数:class Solution {public: int...原创 2018-12-01 12:14:00 · 108 阅读 · 0 评论 -
LeetCode——279. Perfect Squares
1.题目描述输入一个数字,令一些数的平方的和等于这个数字,找出数量最小的这样的数,返回最小数量。比如输入12,则有12=4+4+4,于是返回3。输入16,则有16=16,所以返回1。2.解题思路这道题在LeetCode上依然是动态规划的分类,所以使用动态规划可以很方便的解出这道题。首先是找出子问题,这里的子问题的分解可以是:C(n, i) = min(C(n - i * i, i - 1...原创 2018-11-15 23:14:51 · 119 阅读 · 0 评论 -
LeetCode——152. Maximum Product Subarray
1.题目描述输入一个数字序列,找出拥有最大积的连续子序列。2.解题思路这道题在LeetCode上归类于动态规划,所以我们可以用动态规划的思路去解决它。首先是找出子问题:我们可以把找到一个拥有最大积的以下标为i的元素结尾的连续子序列的问题等同与找到下标为i的元素、拥有最大积的以下标为i-1的元素结尾的连续子序列与下标为i的元素的积中更大的那一个。如果数字序列为a,下标为0到n,而以元素a[i...原创 2018-11-08 20:31:38 · 103 阅读 · 0 评论 -
LeetCode——198. House Robber
1.题目大意假如你是一名小偷,现在准备去偷一条街道上的所有房子里的钱。为了防止偷盗,房子间有防盗装置:只要你偷盗了邻近的两间房子就会惊动警察。请问,如何偷盗才有最大收获?输入代表房子钱财的数组,输出最大收获,如输入[1, 2, 3, 1]就应该输出4。2.解题思路以动态规划的思路来解决这个问题:可以将如何从[n1, n2, …, nk]这里面选择互不相邻的元素有最大的和的问题分为小问题,即...原创 2018-11-04 22:49:44 · 115 阅读 · 0 评论 -
LeetCode——63. Unique Paths II
1.题目大意以一个由0与1组成的矩阵为地图,1为障碍,从左上角到右下角有多少条路径。注意,只能到向下或者向右移动。2.解题方法以矩阵[[0, 0, 0], [0, 1, 0], [0, 0, 0]]为例,很显然,这个地图中从(0, 0)到(2, 2)只有两条路径。依据动态规划的思路,我们可以把从(0, 0)到(2, 2)的路径数量等同于(0, 0)到(2, 1)的路径数量以及(0, 0)到(...原创 2018-10-26 23:49:47 · 300 阅读 · 0 评论 -
LeetCode——11. Container With Most Water
1.题目大意给一个数组,其中数组在下标i处的值为a[i],坐标(i,a[i])和坐标(i,0)构成一条垂直于坐标轴x的直线。现任取两条垂线和x轴组成四边形容器。问其中盛水量最大为多少?2.解题方法首先,暴力破解不可取,因为这势必会造成O(n2)的时间复杂度。所以必须要减少循环,而减少循环的方法就是减少不必要的遍历,而且答案一定要被遍历到。这道题中盛水量取决于底边以及两条垂线的较短边。如...原创 2018-10-21 10:28:04 · 106 阅读 · 0 评论 -
LeetCode——8. String to Integer (atoi)
文章目录1.题目详情2.解题方法1.题目详情Implement atoi which converts a string to an integer.The function first discards as many whitespace characters as necessary until the first non-whitespace character is found. ...原创 2018-10-14 10:06:25 · 151 阅读 · 0 评论 -
LeetCode——6. ZigZag Conversion
1.题目详情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)字符串"PAYPALISHIRING"要...原创 2018-10-06 16:25:32 · 151 阅读 · 0 评论 -
LeetCode——5.Longest Palindromic Substring
文章目录1.题目详情2.解题方法1.题目详情Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.给出一个字符串s,找到s中最长的一个回文串。可以假设s的最大长度为1000。Example 1:Input: “b...原创 2018-10-06 15:37:10 · 97 阅读 · 0 评论 -
LeetCode——3. Longest Substring Without Repeating Characters
文章目录1.题目详情2.解题方法2.1 解法12.2 解法21.题目详情Given a string, find the length of the longest substring without repeating characters.给出一个字符串,找到最长的且没有重复字符的子串。Example 1:Input: “abcabcbb”Output: 3Explanatio...原创 2018-09-22 10:32:26 · 86 阅读 · 0 评论 -
LeetCode——2.Add Two Numbers
1.题目描述2.解题思路思路2.1 解法一2.2 解法22.3 解法31.题目描述原题链接:Add Two NumbersYou are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse ...原创 2018-09-16 14:20:08 · 116 阅读 · 0 评论 -
LeetCode——123. Best Time to Buy and Sell Stock III
1.题目大意给你一个代表股价变动数组a,每个元素a[i]就是股价在第i天的价位。假如你最多可以进行两次买入卖出,而且在买入前你必须卖出,设计一个算法取得最大的利润。2.解题思路2.1 简单的动态规划这道题还是在leetcode上还是动态规划的分组,所以我依然用动态规划的思路来解决。如果将C(i, j)视为在第i天到第j天的一次买卖的最大收益,取得最大利润则等价于max(C(0, i) + ...原创 2018-12-07 09:23:23 · 96 阅读 · 0 评论