非 动态规划---LIS
2024-08-28 00:51:14
题目:一个序列有N个数:A[1],A[2],…,A[N],求出最长非降子序列的长度。(见动态规划---LIS)
/*
题目:一个序列有N个数:A[1],A[2],…,A[N],求出最长非降子序列的长度。
*/
#include <stdio.h> unsigned max_len( int [] , size_t );
size_t b_point( int [] , size_t );
int max(size_t , size_t ); int main( void )
{ int arr[] = { , , , , , , , , , }; printf("%u\n" , max_len( arr , sizeof arr / sizeof arr[] ) ); return ;
} unsigned max_len( int a[] , size_t n )
{
if ( n <= 1u )
return n ; size_t m = b_point ( a , n ) ; return max( m , max_len ( a + m , n - m ) ) ; } size_t b_point ( int a[] , size_t n )
{
size_t i ; for ( i = 1u ; i < n ; i++ )
if ( a[i-] > a[i])
return i - 0u ; return i - 0u ;
} int max( size_t n1 , size_t n2 )
{
if ( n1 > n2 )
return n1; return n2;
}
/*
题目:一个序列有N个数:A[1],A[2],…,A[N],求出最长非降子序列的长度。
*/
#include <stdio.h> unsigned max_len( int [] , size_t );
size_t b_point( int [] , size_t ); int main( void )
{
int arr[] = { , , , , , , , , , }; printf("%u\n" , max_len( arr , sizeof arr / sizeof arr[] ) ); return ;
} unsigned max_len( int a[] , size_t n )
{
size_t len = 0u ;
while ( n > 0u )
{
size_t mid = b_point( a , n ); if ( mid > len )
len = mid ; a += mid ;
n -= mid ;
}
return len ;
} size_t b_point ( int a[] , size_t n )
{
size_t i ; for ( i = 1u ; i < n ; i++ )
if ( a[i-] > a[i])
return i - 0u ; return i - 0u ;
}
最新文章
- Final Cut Pro X效果插件开发总结
- [MySQL]使用Begin...End语句的一个坑
- mac安装redis
- 性能测试-ORACLE性能监控
- JS部分代码分享
- color 和 mode
- js认清this的第一步
- DBContext
- XAMPP配置虚拟主机
- python字符串replace()方法
- 无法解析属性“mode”的值。错误为: 枚举值必须是以下各值中的一个: RemoteOnly, On, Off。
- [背景分离] 识别移动物体基于高斯混合 MOG
- 大约Java有点感悟---开发商根本上感悟学习
- 15.vue使用element-ui的el-input监听不了回车事件
- myeclipse tomcat java.lang.OutOfMemoryError: PermGen space错误的解决方法
- 镜像站nginx
- Spring-boot 国际化
- MVC学习之路(1) EF 增删查改合集
- idea使用maven打包项目
- table 如何不越过父级div