本题要求在O(n)时间内求解。用delta储存相邻两个数的差,如果相邻的两个delta不同负号,那么说明子序列摇摆了一次。参看下图的nums的plot。这个例子的答案是7。平的线段部分我们支取最左边的一个点。除了最左边的边界点,我们要求delta != 0, 并且newDelta * delta < ...
分类:
其他好文 时间:
2016-12-24 07:43:01
阅读次数:
211
1 #include 2 int main() 3 { 4 double n,m,sum=0; 5 while(scanf("%lf%lf",&n,&m)!=EOF) 6 { 7 if(n==0&&m==0) 8 break; 9 for(;n<=m;n++) 10 { 11 ... ...
分类:
其他好文 时间:
2016-12-17 19:58:41
阅读次数:
150
本题的思路比较简答,设置一个计数器,在scan list t的过程中,每发现一个s里面的字母,计数器就+1。如果计数器等于s的长度,说明已经找到一个subsequence 等于s。 ...
分类:
其他好文 时间:
2016-12-17 07:42:55
阅读次数:
161
Given an unsorted array of integers, find the length of longest increasing subsequence. For example,Given [10, 9, 2, 5, 3, 7, 101, 18],The longest inc ...
分类:
其他好文 时间:
2016-12-17 07:41:35
阅读次数:
129
参考了https://discuss.leetcode.com/topic/67413/detailed-explanation-for-java-o-n-2-solution 这道题DP思路还是能想出来,Time O(N^2), Space O(N^2) T(i, d), which denote ...
分类:
其他好文 时间:
2016-12-12 07:40:11
阅读次数:
320
题解: 神一般的trick 首先求最长回文字符串的长度.只用反过来。转换为LCS问题就行 但是关键的要输出字典序最小的 所以在LCS的过程中。保存相应的字符串,并且保证字符串最小。这么求得的长度是对的。但是不一定是回文字符串 例如 bcbabccb bccbabcb > bcabc。 想了很久。可能 ...
分类:
其他好文 时间:
2016-12-04 07:57:25
阅读次数:
176
Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the array. Formally the function should: Your algorithm ...
分类:
其他好文 时间:
2016-12-01 09:25:51
阅读次数:
128
Wiggle Subsequence 最长扭动子序列 思路1:动态规划。状态dp[i]表示以nums[i]为末尾的最长wiggle子序列的长度。时间是O(n^2). 1 public class Solution { 2 public int wiggleMaxLength(int[] nums) ...
分类:
编程语言 时间:
2016-12-01 03:53:24
阅读次数:
231
DP Solution similar to Longest Increasing Subsequence: 我的解法:用一个arraylist存以某一个element结尾的最长sequence 别人的好方法,大体思路一样,只是不存arraylist, 而用一个preIndex数组存以某一个elem ...
分类:
其他好文 时间:
2016-11-27 07:45:52
阅读次数:
177
LCS问题即longest common subsequence problem,中文:最长公共子序列问题 给你两个字符串str1和str2,它们之间可能存在公有子序列,子序列和子串的区别是:子序列不要求连续,只需要按照顺序出现就好,子串则要求连续: 例如:SIMPLE和NAIVE有共同的子序列IE ...
分类:
其他好文 时间:
2016-11-26 23:20:09
阅读次数:
328