赞
踩
题目二:最长单调递增子序列问题
设计一个O(n2)复杂度的算法,找出由n个数组成的序列的最长单调递增子序列。
算法设计:
数组int[] nums 存储原始数据,int[] sub_len 表示从i到n的最长递增序列的长度,初始为1;int[] sub_index 表示第i个数据后面一个数据的下标,初始为0;三个数组列下标为0的元素初始为0不存储有效数据;
- package suanfa_test3;
- import java.util.Scanner;
- public class Lengthest_list {
- public static void main(String[] args) {
- System.out.print("数组的长度 n= ");
- Scanner scanner = new Scanner(System.in);
- while (scanner.hasNext()) {
- int n = scanner.nextInt();
- int[] nums = new int[n + 1]; // 数列数据
- int[] sub_len = new int[n + 1];// sub_len[i]表示从i到n的最长递增序列的长度
- int[] sub_index = new int[n + 1];// 表示第i个数据后面一个数据的下标
- for (int i = 1; i <= n; i++) {
- nums[i] = scanner.nextInt();
- sub_len[i] = 1;
- sub_index[i] = 0;
- }
- for (int i = n - 1; i >= 1; i--) {
- int max &#
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。