最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言實現(xiàn)最長遞增子序列問題的解決方法

 更新時間:2014年09月16日 15:15:16   投稿:shichen2014  
這篇文章主要介紹了C語言實現(xiàn)最長遞增子序列問題的解決方法,采用遞歸的方法解決該問題,是非常經(jīng)典的一類算法,需要的朋友可以參考下

本文實例展示了C語言實現(xiàn)最長遞增子序列問題的解決方法。分享給大家供大家參考。具體方法如下:

問題描述:

給定一個序列,找出其最長遞增子序列長度。

比如 輸入 1 3 7 5

輸出 3

算法解決思路:

利用動態(tài)規(guī)劃的思想,以序列的每個點(diǎn)最為最右端,找出每個點(diǎn)作為最右端時的子序列長度的最大值,即問題的求解。因此,在計算前面的每個點(diǎn)的時候,將其結(jié)果保存下來,后面的點(diǎn)與前面的點(diǎn)的數(shù)值進(jìn)行比較,如果大,則在其長度基礎(chǔ)上加1,并且找出所有可能情況下最長的保存為當(dāng)前點(diǎn)的長度。形成遞歸。

具體實現(xiàn)代碼如下:

#include "stdio.h"
#include "stdlib.h"
#define MAXDATA 10000
int main(){
  int data[MAXDATA]; /*數(shù)據(jù)序列*/
  int lgs[MAXDATA];  /*最長子序列長度*/
  int n,temp,k; /*n 序列長度 temp 子序列長度中間變量 */
  scanf("%d",&n);
  if(n>10000){
     return 0;      
  }
  for(int i=0;i<n;i++){
    scanf("%d",&data[i]);
  }
  for(int i=0;i<MAXDATA;i++){
    lgs[i]=1;  /*給每一個序列點(diǎn)作為右端時的最大序列長度為1*/
  }
  for(int i=1;i<n;i++){
    temp=1;
    for(int j=0;j<i;j++){ /*與其前面的每一個進(jìn)行比較*/
      if(data[i]>data[j]){ /*如果數(shù)據(jù)比前面的某一個的值大*/
        if(lgs[i]+lgs[j]>temp){ /*找出該點(diǎn)的最大子序列長度*/
          temp=lgs[i]+lgs[j];
        } 
      }
    }
    lgs[i]=temp;
  }
  temp=lgs[0];
  for(int i=1;i<n;i++){
    if(lgs[i]>temp){
      temp=lgs[i];
    }
  }
  printf("%d",temp);
  system("pause");
}

希望本文所述對大家C程序算法設(shè)計的學(xué)習(xí)有所幫助。

相關(guān)文章

  • shared_ptr線程安全性全面分析

    shared_ptr線程安全性全面分析

    正如boost文檔所宣稱的,boost為shared_ptr提供了與內(nèi)置類型同級別的線程安全性。這包括:1. 同一個shared_ptr對象可以被多線程同時讀取。2. 不同的shared_ptr對象可以被多線程同時修改成
    2013-09-09
  • c++ const引用與非const引用介紹

    c++ const引用與非const引用介紹

    const引用是指向const對象的引用,可以讀取ref,但不能修改所以也就有將const變量賦值給非const引用是非法的,感興趣的朋友可以了解下,或許本文對你有所幫助
    2013-01-01
  • C語言動態(tài)內(nèi)存分配的詳解

    C語言動態(tài)內(nèi)存分配的詳解

    這篇文章主要介紹了C語言動態(tài)內(nèi)存分配的詳解的相關(guān)資料,這里提供了實現(xiàn)方法整理和出現(xiàn)錯誤的解決辦法,需要的朋友可以參考下
    2017-07-07
  • 在C++中加載TorchScript模型的方法

    在C++中加載TorchScript模型的方法

    這篇文章主要介紹了在C++中加載TorchScript模型的方法,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • 深度解析C語言中數(shù)據(jù)的存儲

    深度解析C語言中數(shù)據(jù)的存儲

    本文詳細(xì)介紹了C語言中數(shù)據(jù)的存儲,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • 詳解C++數(shù)組和數(shù)組名問題(指針、解引用)

    詳解C++數(shù)組和數(shù)組名問題(指針、解引用)

    這篇文章主要介紹了詳解C++數(shù)組和數(shù)組名問題(指針、解引用),指針的實質(zhì)就是個變量,它跟普通變量沒有任何本質(zhì)區(qū)別,指針本身是一個對象,同時指針無需在定義的時候賦值,具體內(nèi)容詳情跟隨小編一起看看吧
    2021-09-09
  • c語言階乘之和問題示例詳解

    c語言階乘之和問題示例詳解

    這篇文章主要給大家介紹了關(guān)于c語言階乘之和問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用c語言具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • C++學(xué)習(xí)筆記之初始化列表

    C++學(xué)習(xí)筆記之初始化列表

    初始化列表是類中構(gòu)造函數(shù)的一部分,用于實例化類中變量時賦初值,下面這篇文章主要給大家介紹了關(guān)于C++學(xué)習(xí)筆記之初始化列表的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • 詳解C語言正確使用extern關(guān)鍵字

    詳解C語言正確使用extern關(guān)鍵字

    這篇文章主要介紹了C語言正確使用extern關(guān)鍵字,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 詳解C語言中printf輸出的相關(guān)函數(shù)

    詳解C語言中printf輸出的相關(guān)函數(shù)

    這篇文章主要介紹了C語言中printf輸出的相關(guān)函數(shù)總結(jié),是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-08-08

最新評論

汾西县| 涿州市| 宜宾县| 许昌县| 龙州县| 香格里拉县| 隆回县| 新乡县| 绥江县| 宝鸡市| 滨海县| 巴林左旗| 雅江县| 独山县| 禹州市| 岳普湖县| 出国| 明星| 武功县| 抚顺市| 东乌珠穆沁旗| 科尔| 繁峙县| 西盟| 方正县| 滨海县| 涞源县| 湖北省| 鹤岗市| 中江县| 秀山| 象山县| 集贤县| 永川市| 孟村| 新民市| 漳浦县| 昌宁县| 庆城县| 伊金霍洛旗| 北京市|