鏈接:https://ac.nowcoder.com/acm/problem/18281
來源:牛客網
時間限制:C/C++ 1秒,其他語言2秒
空間限制:C/C++ 262144K,其他語言524288K
64bit IO Format: %lld
題目描述
一隻青蛙出去旅遊,因爲中國有一句古話說的好:“由簡入奢易,由奢入儉難”,所以這隻青蛙當看的當前景點比前面看過的景點差的時候,青蛙就會說“不開心”爲了避免這隻青蛙說“不開心”,並且使青蛙看的景點儘量的多,所以他請你幫忙給他安排一條線路,使青蛙可以看到儘量多的景點,並且不走回頭路。
輸入描述:
第一行爲一個整數n,表示景點的數量
接下來n行,每行1個整數,分別表示第i個景點的質量
輸出描述:
一個整數,表示青蛙最多可以看到幾個景點
示例1
輸入
複製
10
3
18
7
14
10
12
23
30
16
24
輸出
複製
6
備註:
景點質量爲1到n+23的整數
10<=n<23 10%
23<=n<233 30%
233<=n<2333 60%
2333<=n<23333 100%
思路:最長單調序列
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc= new Scanner(System.in);
int n=sc.nextInt();
int num[]=new int[n];
int dp[]=new int[n];
for(int i=0;i<n;i++) {
num[i]=sc.nextInt();
dp[i]=1;
}
int ans=0;
for(int i=0;i<n;i++) {
for(int j=0;j<i;j++) {
if(num[i]>=num[j]) {
dp[i]=Math.max(dp[j]+1,dp[i]);
}
}
if(dp[i]>ans) {
ans=dp[i];
}
}
System.out.println(ans);
}
}