[算法]动态规划之最长递增子序列
2014-12-15 13:51
211 查看
最长递增子序列
#include<stdio.h> #include<stdlib.h> #include<time.h> #include<string.h> #define N 4 int solve(int *array, int n) { int *dp = (int *)malloc(n * sizeof(int)); int i; int j; int result; bzero((void *)dp, n * sizeof(int)); dp[0] = 1; for(i = 1; i < n; i++) { *(dp + i) = *(dp + i - 1); for(j = 0; j < i; j ++) { if(*(array + i) > *(array + j)) { *(dp + i) = (*(dp + i) < *(dp + j) + 1) ? (*(dp + j) + 1) : *(dp + i); } } } result = *(dp + n -1); free(dp); return result; } int main(char ** args) { srand((unsigned)time(NULL)); int *array = (int *)malloc(N * sizeof(int)); for(int i = 0; i < N; i++) { *(array + i) = rand() % N; printf("%d\t", *(array + i)); } int ret = solve(array, N); printf("\nresult:%d\n", ret); free(array); return 0; }
相关文章推荐
- 机试算法讲解: 第49题 动态规划之最长递增子序列问题
- 算法设计 - LCS 最长公共子序列&&最长公共子串 &&LIS 最长递增子序列
- [置顶] 【动态规划】最长递增子序列
- 动态规划之最长递增子序列问题
- 复试训练——动态规划——最长递增子序列
- 算法之最长递增子序列
- 【转】最长递增子序列的优化算法 O(NlogN)
- 算法-最长递增子序列
- 动态规划_最长递增子序列
- 【面试题之算法部分】LIS最长递增子序列
- 动态规划——最长递增子序列
- 【算法知识总结】最长递增子序列
- 设计一个O(n2)时间的算法,找出由n个数组成的序列的最长单调递增子序列。
- 最长递增子序列之我的第一个动态规划
- 算法-最长递增子序列
- 最长递增子序列问题---动态规划
- 动态规划-求最长递增子序列
- 经典算法实现(最长公共子序列,最长递增子序列)
- 动态规划--最长递增子序列
- 动态规划——最长递增子序列和最长公共子序列