Leetcode300:最长上升子序列(java)

题目描述

在这里插入图片描述

思路分析

在这里插入图片描述dp数组中的每个数字是如何求得的呢?
在这里插入图片描述

代码实现

public int lengthOfLIS(int[] nums)
	{
		int[] dp = new int[nums.length];
		// dp数组全部初始化为1
		Arrays.fill(dp, 1);
		for (int i = 0; i < nums.length; i++) {
			for (int j = 0; j < i; j++) {// 这个for循环用于求出dp[i]的值
				if (nums[i] > nums[j]) {
					dp[i] = Math.max(dp[i], dp[j] + 1);
				}
			}
		}

		// 求dp数组中的最大值
		int res = 0;
		for (int i = 0; i < dp.length; i++) {
			res = Math.max(res, dp[i]);
		}
		return res;
	}
发布了88 篇原创文章 · 获赞 27 · 访问量 5908

猜你喜欢

转载自blog.csdn.net/weixin_43362002/article/details/104854357