最长上升子序列

来源:互联网 发布:免费自动拨号软件 编辑:程序博客网 时间:2024/06/02 15:27

前几天参加面试有一道简单的算法题把我难住了,后来回宿舍后想了想找到了解决方法。

问题:输入一串无序数组,要求输出其中最长上升子序列。

例:

输入 1, 2, 0,10, 3, 4, 5, 6, 4, 1, 4 

输出   3, 4, 5, 6


解决方法:

   int[] array = { 1, 2, 0,10, 3, 4, 5, 6, 4, 1, 4 };            int start = 0, stop = 0;            int len = array.Length;            for (int i = 0; i < len; i++)            {                for (int j = i + 1; j < len; j++)                {                    if (array[j] <= array[j - 1])                    {                        break;                    }                    else if (j - i > stop - start)                    {                        stop = j;                        start = i;                    }                }            }            for (int j = start; j <= stop; j++)            {                Console.WriteLine(array[j]);            }


原创粉丝点击