网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

动态规划——最长递增子序列

最长递归子序列

成都创新互联公司自2013年创立以来,是专业互联网技术服务公司,拥有项目成都网站设计、成都网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元北镇做网站,已为上家服务,为北镇各地企业和个人服务,联系电话:18980820575

设L=是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=,其中k1

1.时间复杂度为O(n2),空间复杂度O(n)的算法

动态规划——最长递增子序列

//O(n2)
int LIS1(const int arr[], const int size)
{
	vector h;

	h.push_back(1);
	int index = 1;

	int max = 1;
	while (index < size)
	{
		int longest_sub_size = 0;

		for (int j = 0; j < index; ++j)
		{
			if (arr[j] < arr[index] && longest_sub_size < h[j])
			{
				longest_sub_size = h[j];

				if (max < longest_sub_size+1)
				{
					max = longest_sub_size + 1;
				}
			}
		}
		h.push_back(longest_sub_size + 1);
		++index;
	}

	return max;
}

2.时间复杂度O(n*log n),空间复杂度O(n)的算法

动态规划——最长递增子序列

int BinSearch(int key, int* d, int low, int high)  
{  
    while(low<=high)  
    {  
        int mid = (low+high)>>1;  
        if(key>d[mid] && key<=d[mid+1])  
            return mid;  
        else if(key>d[mid])  
            low = mid+1;  
        else  
            high = mid-1;  
    }  
    return 0;  
}  
  
int LIS(int* a, int n, int* d)  
{  
    int i,j;  
    d[1] = a[1];  
    int len = 1;        //递增子序列长度  
    for(i = 2; i <= n; i++)  
    {  
        if(d[len]            
            
                        
分享题目:动态规划——最长递增子序列
URL地址:http://bjjierui.cn/article/gsegec.html

其他资讯