新浪多媒体题目求解

今天新浪多媒体的一个题说:找出给定数组的单调递增子序列的最大长度,该子序列可以不连续。
我敲了以下代码,不知道为什么通过率0%。有做了一样的题的大牛解答下吗?
输入要求:n a1 a2 a3 ... an    (n为数组长度,a1-an为数组元素)
输出要求:单调递增子列最大长度
#include <iostream>
#include <stdlib.h>
#include<stdio.h>
using namespace std;
 int main()
 {
    int n;
    int i = 0,j;
    char c;
    int length = 0;
    int maxlen = 0;
    cin >> n;
    int* a = (int*)malloc(n * sizeof(int));
    for (i = 0; i < n; i++)
    {
        cin >> a[i];
    }
    int previous;
    for (i = 0; i < n; i++)
    {
        previous = a[i];
        //cout << "index" << previous << endl;
        for (j = i+1; j < n; j++)
        {
            if (a[j] > previous)
            {
                length++;
                previous = a[j];
                //cout << length << " " << a[j] << endl;
            }
        }
        if (length > maxlen)
            maxlen = length+1;
        length = 0;
        //cout << " " << endl;
    }
    cout << maxlen << endl;
    free(a);
    //cin >> n;
    return 0;
 }

#新浪##笔试题目##题解#
全部评论
你用5 1 1 1 1 1 测一下
点赞 回复 分享
发布于 2018-09-15 23:18

相关推荐

无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
威猛的小饼干正在背八股:挂到根本不想整理
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务