2.16 求数组中最长递增子序列
来源:互联网 发布:sql语句if判断 编辑:程序博客网 时间:2024/06/03 21:17
问题:
如标题,求数组中最长递增子序列。
解法一:
动态规划
#include <stdio.h>#include <stdlib.h>#include<malloc.h>int LIS(int* array, int num){ int* temp = (int *)malloc(num*sizeof(int)); int i = 0; int j = 0; int max = 0; for (i = 0; i < num; i++) { temp[i] = 1; for (j = 0; j < i; j++) { if (array[i] > array[j] && temp[j] + 1 > temp[i]) { temp[i] = temp[j] + 1; } } } max = temp[0]; for (i = 1; i < num; i++) { if (temp[i] > max) max = temp[i]; } free(temp); return max;}int main(){ //printf("Hello world!\n"); int array[] = {1,-1,2,-3,4,-5,6,-7}; printf("%d\n", LIS(array, 8)); return 0;}
#include <stdio.h>#include <stdlib.h>#include<malloc.h>int Min(int* array, int num){ int i = 0; int min = array[0]; for (i = 1; i < num; i++) { if (array[i] < min) min = array[i]; } return min;}int LIS(int* array, int num){ int i = 0, j = 0; int* temp = (int *)malloc((num + 1) * sizeof(int)); int* LIS = (int *)malloc(num * sizeof(int)); temp[1] = array[0]; temp[0] = Min(array, num) - 1; for (i = 0; i < num; i++) { LIS[i] = 1; } int nMaxLIS = 1; for(i = 1; i < num; i++) { for(j = nMaxLIS; j >= 0; j--) { if (array[i] > temp[j]) { LIS[i] = j + 1; break; } } if (LIS[i] > nMaxLIS) { nMaxLIS = LIS[i]; temp[LIS[i]] = array[i]; } else if (temp[j] < array[i] && array[i] < temp[j + 1]) { temp[j + 1] = array[i]; } } return nMaxLIS;}int main(){ //printf("Hello world!\n"); int array[] = {1,-1,2,-3,4,-5,6,-7}; printf("%d\n", LIS(array, 8)); return 0;}
- 求数组中最长递增子序列
- 求数组中最长递增子序列
- 求数组中最长递增子序列
- 求数组中最长递增子序列
- 求数组中最长递增子序列
- 求数组中最长递增子序列
- 求数组中最长递增子序列
- 求数组中最长递增子序列
- 求数组中最长递增子序列
- 求数组中最长递增子序列
- 求数组中最长递增子序列
- 求数组中最长递增子序列
- 求数组中最长递增子序列
- 求数组中最长递增子序列
- 求数组中最长递增子序列
- 求数组中最长递增子序列
- 求数组中最长递增子序列
- 求数组中最长递增子序列
- 嵌入式C开发基础题(9)
- 在 VirtualBox 中增强 FreeBSD 虚拟机
- 未能加载文件或程序集“XXXX”或它的某一个依赖项。试图加载格式不正确的程序
- Java设计模式笔记(5)建造者模式
- 给新创建的注册表键创建安全描述符
- 2.16 求数组中最长递增子序列
- what does the three dots in “doInBackground(URL… urls)” mean?
- 百度地图之离线下载功能
- 库函数和系统调用的优劣
- SetCaretPos和TextOut调用的顺序
- 线程同步
- iOS去掉icon的(自带磨光效果)gloss effects
- android APP 中微信分享功能实现 的总结
- callBackFunc