求整形数组中最大递增序列的长度
2014-10-14 20:32
148 查看
题目:给定整形数组,求出该数组中最大递增序列的长度,如:{4,2,6,3,3,1,5},最大递增序列为{2,3,3,5}长度为4
思路:开辟新的数组空间(记录数组),记录原数组当前元素处的最大序列长度。遍历整形数组,每遍历一个元素即向前回溯,相应记录数组元素保存当前最大递增序列长度值
具体代码如下:
思路:开辟新的数组空间(记录数组),记录原数组当前元素处的最大序列长度。遍历整形数组,每遍历一个元素即向前回溯,相应记录数组元素保存当前最大递增序列长度值
具体代码如下:
#include<stdio.h> #include<stdlib.h> int getTheLongest(int *a,int len){ int b[len]; int i,j,max=0; for(i=0;i<len;i++)//初始化记录数组 b[i] = 1; for(i=1;i<len;i++){ j = i-1; while(j>=0){ max = b[i]; if(a[i] >= a[j]){ b[i] = b[j] + 1; b[i] = max > b[i] ? max : b[i];//记录数组元素值的变化 } j--; } if(max < b[i])//返回记录数组中的最大值即为整形数组中最大递增序列的长度 max = b[i]; } return max; } int main(){ int a[] = {4,2,6,3,3,1,5}; int num = 0,len=sizeof(a)/sizeof(int); num = getTheLongest(a,len); printf("%d",num); return 0; }
相关文章推荐
- 数组中寻最大递增序列2
- 找工作知识储备(2)---数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 求数组中最长递增子序列的长度
- 最大子数组和、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
- 最长公共子序列|最长公共子串|最长重复子串|最长不重复子串|最长回文子串|最长递增子序列|最大子数组和
- 一维数组中最长递增子序列的长度(DP做法)
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串 (转)
- 从长度为n的整形数组中返回m个最大数(不许使用排序)
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 求数组中最长递增子序列的长度
- 最长公共子序列|最长公共子串|最长重复子串|最长不重复子串|最长回文子串|最长递增子序列|最大子数组和
- 最长公共子序列|最长公共子串|最长重复子串|最长不重复子串|最长回文子串|最长递增子序列|最大子数组和
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 【各种最...】最长公共子序列|最长公共子串|最长重复子串|最长不重复子串|最长回文子串|最长递增子序列|最大子数组和
- 最长公共子序列|最长公共子串|最长重复子串|最长不重复子串|最长回文子串|最长递增子序列|最大子数组和
- 最长公共子序列|最长公共子串|最长重复子串|最长不重复子串|最长回文子串|最长递增子序列|最大子数组和
- PHP 求最大递增子序列长度
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 求数组中最长递增子序列的长度
- 求数组中最长递增子序列的长度