首页 > 其他 > 详细

leetcode 300 最长递增子序列

时间:2021-05-23 15:08:10      阅读:20      评论:0      收藏:0      [点我收藏+]

简介

dp 经典问题

code

class Solution {
public:
    int lengthOfLIS(vector<int>& nums) {
        int maxLength = 0;
        vector<int> nums1(nums.size(), 1);
        for(int j=0; j<nums.size(); j++){
            for(int i = 0; i<j; i++){
                if(nums[i] < nums[j]) nums1[j] = max(nums1[i] + 1, nums1[j]);
            }
        }
        for(auto it:nums1){
            if(it > maxLength){
                maxLength = it;
            }
        }
        return maxLength;
    }
};
class Solution {
    public int lengthOfLIS(int[] nums) {
        int n = nums.length;
        ArrayList<Integer> v = new ArrayList<Integer>();
        for(int i=0; i<n; i++){
            v.add(1);
        }
        for(int i=0; i<n; i++){
            for(int j=0; j<i; j++){
                if(nums[j] < nums[i]){
                    v.set(i, Math.max(v.get(i), v.get(j)+1)); // arrayList set 方法
                }
            }
        }
        int maxLength = 0;
        for(int it : v){
            if(it > maxLength){
                maxLength = it;
            }
        }
        return maxLength;
    }
}

TIPS

发现 java 的方法确实不如c++方面比如, 没有operator来简化操作.

leetcode 300 最长递增子序列

原文:https://www.cnblogs.com/eat-too-much/p/14800497.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!