简介

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来简化操作.

posted on 2021-05-23 09:35  HDU李少帅  阅读(23)  评论(0编辑  收藏  举报