OJ
amyecho1996
这个作者很懒,什么都没留下…
展开
-
leetcode-72. Edit Distance
问题描述:Word1要经过多少步操作才能变成Word2操作:增加一个字符;删除一个字符;替换一个字符思路:设dp[i][j]为将Word1前i个字符转换成Word2前j个字符所需操作步数,则问题转换为求dp[len1][len2]dp[i][j]可以由以下几种路径得出:1. 在已知dp[i-1][j]的情况下,Word1再删除一个字符2. 在已知dp[i][j-1]的情况下,Word1再增加一个字...原创 2018-03-14 17:46:34 · 180 阅读 · 0 评论 -
leetcode-056 Merge Intervals
问题描述:给一串区间,部分有重叠,要求输出合并后无重叠的区间解决方法:按照区间头进行排序,然后比较前后两个区间(a,b)和(c,d)1. 若b>=c且b<d,即可合并两个区间为一个新区间(a,d)2. 若b>=c且b>=d,即删去区间(c,d) 例[[1,4],[2,3]]3. 若b<c,则保留两个区间特殊情况:输入为空输入的两个区间一样[[1,4], [1,4]]...原创 2018-03-12 09:14:02 · 126 阅读 · 0 评论 -
leetcode-026 Remove Duplicates from Sorted Array
问题描述:在一个vector数组中删去重复的数字,直接返回新的数组长度len,注意数组前len个数字是不重叠的。输入:【1,1,2】输出:2 【1,2】解题思路:先将vector排好序,遍历数组,若当前数字与前一个数字相同,则删去这个数字。特殊情况:输入为0;【1】...原创 2018-03-12 09:31:55 · 87 阅读 · 0 评论 -
leetcode-057 Insert Interval
问题描述:已知一串已排好序的无重叠的区间,先插入一个新区间[a,b],要求输出merge后无重叠的区间集Example 1:Given intervals [1,3],[6,9], insert and merge [2,5] in as [1,5],[6,9].Example 2:Given [1,2],[3,5],[6,7],[8,10],[12,16], insert and merge [...原创 2018-03-12 11:13:48 · 138 阅读 · 0 评论 -
leetcode-075. Sort Colors
问题描述:将一串含有0,1,2的数组进行排序,使所有的0在最前面,所有的1在中间,所有的2在最后面解题思路1:确定0,1,2的个数0的个数:数组长度-数组总和1的个数:遍历数一下2的个数:总个数-0的个数-1的个数问题1:不count的话,0的个数计算不出解题思路2:设变量num_0,num_1,num_2=-1,遍历一遍,当遇到0时,A[++num_2] = 2;A[++num_1] = 1;A...原创 2018-03-12 11:54:45 · 101 阅读 · 0 评论 -
leetcode-164. Maximum Gap
问题描述:已知一串未排序的数字,要求输出排序后相邻两数字最大的差值,要求O(n)的时间和空间解题思路:因为sort函数时间复杂度为O(nlogn),所以不能使用。基数排序/桶排时间复杂度是O(d*(n+k)),近乎线性,所以可以先基数排序后在遍历找最大差值更快速的解法不需要将所有数字排好序,其思路如下:找到数组的最大最小值min,max,则最大差值一定大于(max-min)/(n-1)【设数组大小...原创 2018-03-12 16:23:43 · 131 阅读 · 0 评论 -
创建链表节点的小错误
创建链表时要新建指针CNode* pNode = new CNode();这样分配的空间才会在堆里,除非手动free否则不会被销毁。若新建的是Node的话是在栈里分配空间,只是个临时变量,跳出循环(作用域)就会被自动销毁。...原创 2018-03-13 17:07:36 · 204 阅读 · 0 评论 -
leetcode-58. Length of Last Word
问题描述:计算一个string中最后一个单词的长度input : "hello world"onput : 5特殊情况:1. string为空2. string中只有单词没有空格 ex."a"3. string中只有空格没有单词4. string最后有空格 ex. "a "5. string前面有空格 ex." a"ps. str =str+ "a"加的运算产生的是一个新的对象,再把结果返回,...原创 2018-03-13 17:30:11 · 126 阅读 · 0 评论 -
leetcode-592. Fraction Addition and Subtraction
问题描述:分数加减首先要将式子中的每个分数找出来,记录下分子分母。然后对每一个分数计算通分时应乘上的倍数,即其他分数分母的乘积。最后通分,再化简(辗转相除法求最大公倍数)。特别注意第一个分数是负数的情况&&结果是负数的情况。【注意】stray '\343' in programstray '\200' in program意为代码中含有中文,可能是空格。 /*******辗转...原创 2018-03-14 10:11:41 · 230 阅读 · 0 评论