leetcode
crabstew
这个作者很懒,什么都没留下…
展开
-
[leetcode/Matrix](sort)Sort Colors-计数排序的运用
Sort Colors 计数排序题干:第一种解法:计数排序第二种解法:头尾指针解法题干:Given an array with n objects colored red, white or blue, sort them in-place(the input is overwritten by the output as the algorithm executes) so that obj...原创 2019-03-17 14:29:02 · 248 阅读 · 0 评论 -
[leetcode]贪心算法之WiggleSubsequence
贪心算法之WiggleSubsequence题目思考代码题目leetcode入口思考而是维护两个变量p和q,然后遍历数组,如果当前数字比前一个数字大,则p=q+1,如果比前一个数字小,则q=p+1,最后取p和q中的较大值跟n比较,取较小的那个。p代表最后一个数字比前一个数字大的子序列的长度q代表最后一个数字比前一个数字小的子序列的长度代码class Solution {publi...原创 2019-05-14 12:11:25 · 121 阅读 · 0 评论 -
[leetcde]回溯法之Letter Combinations of a Phone Number
回溯法的应用-Letter Combinations of a Phone Number回溯法题目入口题目解析代码思考回溯法回溯法一般采用递归法求解递归终止条件 - 一般是达到问题的求解的一种可能的情况调用递归函数,传入每一种可能题目入口leetcode入口题目解析这是一道类似 全排列 的题目,可以采用回溯法求解,关键是调用for循环,迭代每一个可能代码class Sol...原创 2019-05-07 21:57:59 · 222 阅读 · 0 评论 -
[leetcode]图/树算法之并查集Redundant Connection(环/回路的判定)
图/树算法之并查集题目解析答案知识点题目leetcode入口解析这一道题运用了并查集,并查集知识,参考博客入口在并查集的数组里,如果有相同的祖先,说明在同一颗树中,因此如果一条边的两个点,有共同的祖先,说明他们在一颗树里。此时再在两个点间连一条线,那么就会使得树中出现环。答案class Solution{public: vector<int> findRe...原创 2019-05-11 13:29:53 · 257 阅读 · 0 评论 -
[leetcode]图算法之拓扑排序/有向图判环Course Schedule
图算法之拓扑排序/有向图判环Course Schedule题目思考代码题目leetcode题目入口思考这道题考查了 拓扑排序+有向图判环的问题。关键是:判断入度为0的点,并逐个删去代码class Solution {public: vector<int> findOrder(int numCourses, vector<vector<int>&...原创 2019-05-11 17:10:27 · 432 阅读 · 0 评论 -
[leetcode]动态规划Unique Binary Search Trees
动态规划Unique Binary Search Trees题目思想代码题目leetcode入口思想当数组为 1,2,3,4,… i,… n时,基于以下原则的BST建树具有唯一性:以i为根节点的树,其左子树由[1, i-1]构成, 其右子树由[i+1, n]构成。刚开始,知道这个是卡特兰数,想用公式C2nn/(n+1)C_{2n}^n/(n+1)C2nn/(n+1)做,但是C2nnC...原创 2019-05-12 23:50:23 · 115 阅读 · 0 评论 -
[leetcode]动态规划之Minimum ASCII Delete Sum for Two Strings
动态规划之Minimum ASCII Delete Sum for Two Strings题目思考答案题目leetcode入口思考这道题的特征:两个字符串,dp对于两个字符串的这种问题,一般dp用二维数组表示,dp[i][j]一般表示两个字符串前i个和前j个字符所满足的性质刚开始做这道题,以为和删去字符的ASCII值有关,后来发现其实和求编辑距离没什么两样答案class Solut...原创 2019-05-29 21:47:51 · 139 阅读 · 0 评论 -
[leetcode]动态规划之Largest Plus Sign
动态规划之Largest Plus Sign题目思考代码暴力法DP法题目leetcode入口思考刚开始在想一个位置(i,j)是否在mines容器中要怎么查找想过直接开一个数组存储,但是怕太大了爆掉,后来看了解析发现N的范围也不是很大,于是就应该直接开数组存储。。。暴力法可以过但是非常慢。dp法:选择所在点中,四个方向1的个数最小的那个最为该点处的阶代码暴力法class Sol...原创 2019-06-18 23:13:53 · 164 阅读 · 0 评论 -
[leetcode]动态规划之House Robber II
动态规划之House Robber II题目思考代码题目leetcode入口思考刚开始想的dp[i]的解释是以nums[i]为结尾(包括nums[i])的最大数量,然后找不到状态方程。(这道题要和最长的子序列和区别开来,最长子序列和是连续的,故需要以dp[i]为结尾,而这道题可以是跳跃的,故不需要以dp[i]为结尾)而把dp[i]理解为到位置i位置所能偷的最大数量,就能很容易的写出状态方...原创 2019-06-20 00:06:56 · 217 阅读 · 0 评论 -
[leetcode]动态规划之CountingBits
动态规划之CountingBits题目思考代码题目leetcode入口思考这道题让我思考了dp数组代表什么含义。dp数组含义:一般来说dp[i]就代表问题的解,dp[i]的值与前面的值有联系(不一定是相邻的)初始值一般第一个或者第二个初始值需要手动设定本题解题方法:本题需要找规律,一个一个把答案解出来,寻找和以前的答案的关系规律:从数字1开始,如果i是偶数,那么1的个数就...原创 2019-06-23 00:09:04 · 152 阅读 · 0 评论 -
[leetcode]动态规划之Maximal Square
动态规划之Maximal Square题目思考代码题目leetcode入口思考之前认为dp表格的含义是到dp[i][j]是到表格中(i,j)这个点为止,最优的解但是通过这道题,dp[i][j]可以有了新的含义新的含义:dp[i][j]:以包含点(i,j)的最优解,最后只需找出表格中的最优解即可了。这道题的解题思路:除了第一行和第一列外,dp[i][j]代表以(i,j)为右下顶点的...原创 2019-06-24 00:06:50 · 137 阅读 · 0 评论 -
[leetcode]动态规划之PerfectSquare
动态规划之PerfectSquare题目思考代码数学方法动态规划题目leetcode题目入口思考数学定理:四平方和定理:每个正整数均可表示为不超过4个完全平方数的和。注意有些整数不可表示为3个完全平方数的和,例如7代码数学方法class Solution {public: int numSquares(int n) { //因为假如 c=a^2+b^2 ...原创 2019-06-27 00:25:45 · 220 阅读 · 0 评论 -
[leetcode]动态规划之Ugly Number
动态规划之Ugly Number题目思考代码题目leetcode入口思考这是一道结合了数学的dp题这道题里 dp[i]当然存放着满足条件的第i-1个数啦需要知道以下数学知识:任意一个自然数都可被分解为素数的乘积。所以,为了使得他的因子都为2,3,5. 需要从源头开始乘以2,3,5这里难点是把乘了之后的数排序代码如下代码class Solution {public: ...原创 2019-06-25 00:18:54 · 243 阅读 · 0 评论 -
[leetcode]分治算法之Median of Two Sorted Arrays
分治算法之Median of Two Sorted Arrays题干思想归类代码题干leetcode入口思想归类中位数的计算:假设第一个集合大小为size1,第二个为size2,那么中位数可以是第 (size1+size2+1)/2 和 (size1+size2+2)/2 这两个位置的值利用分治法,求这两个位置的值。二分法:求两个有序数组中第K小的数组,对K进行二分代码cla...原创 2019-07-02 22:44:10 · 392 阅读 · 0 评论 -
[leetcode]动态规划之Maximum Product Subarray
动态规划之Maximum Product Subarray题目思考类型归类代码题目leetcode入口思考特殊在于,数组元素可能是0或者是负数。当遇到负数的时候,最大值和最小值间会出现翻转,即:最大值会变成最小值,最小值会变成最大值维护两个数组dpmin[i]:存储以元素[i]为结尾的连续一段的最大值dpmax[i]:存储以元素[i]为结尾的连续一段的最小值每次遍历都要 res...原创 2019-05-13 23:45:16 · 195 阅读 · 0 评论 -
[Matrx/leetcode](sort)Largest Number(sort函数的运用/字符串的比较)
LargestNumber题干知识点-sort/字符串比较代码题干给定一个由 n(2≤n≤105) 个非负整数组成的数组 nums,要求对 nums 中的元素进行安排,使其形成的数最大。请实现下面 Solution 类的 largestNumber 方法,该方法参数如上所述,返回最大数对应的字符串。class Solution {public: string largestNum...原创 2019-03-17 15:12:51 · 184 阅读 · 0 评论 -
[matrix/leetcode](sort)Kth Largest Element in an Array-快速排序
Kth Largest Element in an Array-快速排序前言题干代码前言这道题当作是快速排序的一个模板了,主要要记住qsort的几个参数的含义题干给定一个未排序的整型数组,有 n(2≤n≤105) 个元素,求第 k 大的元素。请为下面的 Solution 类实现解决上述问题的函数 findKthLargest,函数返回值为向量 nums 中第 k 大的元素。class ...原创 2019-03-17 15:36:31 · 152 阅读 · 0 评论 -
[matrix/leetcode](sort)Search a 2D Matrix-搜索范围的缩小
Serach a 2D Matrix-搜索范围的缩小题干解析代码题干Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:Integers in each row are sorted in ascending fr...原创 2019-03-17 17:03:16 · 225 阅读 · 0 评论 -
[leetcode/matrix](sort)Insert Interval(库函数sort的运用)
库函数sort的运用题干:题解代码总结题干:Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary). You may assume that the intervals were initially sorted according to th...原创 2019-03-18 18:06:15 · 172 阅读 · 0 评论 -
[leetcode]5. Longest Palindromic Substring最长回文子串
最长回文子串思想代码结果改进DP的改进巧妙的方法:从中心扩展思想这道题是 DP 下的题目,找一个字符串中最长的回文子串。首先要解决判别回文子串的问题。其次,利用DP的思想:把字符串的长度作为分解子问题的标准长度为N的字符串的最大回文子串长度= max{ 长度为N-1的最大回文子串长度 , 加入第N个字符之后从右往左数最长回文串的长度}代码bool judge(char*a,int...原创 2019-04-01 10:34:49 · 156 阅读 · 0 评论 -
[leetcode]贪心算法之jumpgame(一)(二)
贪心算法之jumpgame题干答案反思题干leetcode入口Given an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your maximum jump length a...原创 2019-04-21 21:39:25 · 294 阅读 · 0 评论 -
[leetcode]贪心算法之Monotone Increasing Digits
贪心算法之Monotone Increasing Digits题干答案反思题干Given a non-negative integer N, find the largest number that is less than or equal to N with monotone increasing digits.(Recall that an integer has monotone i...原创 2019-04-21 22:46:43 · 151 阅读 · 0 评论 -
[leetcode]图算法之判断有向图有无环802. Find Eventual Safe States
图算法之判断有向图有无环802. Find Eventual Safe States题目题解代码题目leetcode题目入口题解判断有向图有无环:不断删去出度为0的结点以及与之相连的边,如果到最后还有点没有删去则证明有环这个方法可以拓展到无向图这里注意可以使用一个队列,来保存被删去的节点不断加入出度为0的节点,在反转图中找到与其相连的节点之后再从原图中删去。直到队列为空退出循...原创 2019-04-27 10:49:11 · 820 阅读 · 0 评论 -
[leetcode]图算法之二分图染色法/BFS的运用785. Is Graph Bipartite?
图算法之二分图染色法/BFS的运用题目解析答案题目leetcode入口解析二分图,其实就是把点分成两个集合使用BFS,相邻曾的节点属于不同的集合,如果在BFS的过程中遇到了之前访问过的节点,就说明不能分成两个集合答案//BFSclass Solution {public: bool isBipartite(vector<vector<int>>&a...原创 2019-04-27 10:50:21 · 644 阅读 · 0 评论 -
[leetcode]分治算法之Different Ways to Add Parenthese
分治算法之Different Ways to Add Parentheses分治的思考其他的学习题干答案分治的思考分治:把问题分为k份,然后再将这k份连起来。方法:一般用递归来做。注意:处理递归终止条件,即问题规模最小的情况典型例题:归并排序、快速排序其他的学习string.substr(pos,len) 的用法题干leetcode入口答案很慢的一种答案,但是毕竟是自己想出来...原创 2019-04-23 20:42:24 · 160 阅读 · 0 评论 -
[leetcode]分治算法之beautiful Array
分治算法之Beautiful Array题目解析答案题目leetcode入口解析一个基本的思想是:因为2*A[k]是偶数,如果奇数在左,偶数在右,那么(奇数+偶数)/2就是奇数,就不会等于A[k]。但是如果左边全是奇数,右边全是偶数,也会出现问题。因此需要利用 分治算法 对左边和右边进行处理。由于偶数有 N2\frac{N}{2}2N 个,偶数的表示方法是 2i奇数有 N+1...原创 2019-04-23 23:03:23 · 223 阅读 · 0 评论 -
[leetcode]动态规划之wordbreak
动态规划之wordbreak题目知识点思考代码题目leetcode入口知识点unordered_set a(vector.begin(),vector.end()) //哈希set,可以实现快速的查找可以使用 a.count(“···”)快速查找思考刚开始被查找字符串难住了,后来看了博客才知道,可以使用哈希set来实现常数时间的查找。对于每一个dp[i],需要遍历之前的dp[j] ...原创 2019-05-13 20:27:15 · 157 阅读 · 0 评论 -
[leetcode]Regions Cut By Slashes-DFS
Regions Cut By Slashes题目思考代码(dfs)题目leetcode入口思考这道题的难点在于把问题抽象为求解连通分量个数的题,并且要知道如何建图将一个正方形方格分成四个三角形部分记为0,1,2,3,分别对应左边,下边,右边,上边的三角形。不论是什么输入(暂不考虑边界情况)该正方形的1都能与下面的正方形的3连接该正方形的2都能与右边的正方形的0连接分情况输入" ...原创 2019-07-03 14:31:31 · 188 阅读 · 0 评论