首页 > 其他分享 >300. 最长递增子序列(leetcode)

300. 最长递增子序列(leetcode)

时间:2024-09-07 14:03:09浏览次数:6  
标签:nums 300 递增 int length 序列 leetcode

https://leetcode.cn/problems/longest-increasing-subsequence/description/

class Solution {
    public int lengthOfLIS(int[] nums) {
        // f[i]表示以第i个数为结尾的最长严格上升子序列
        // 以倒数第二个数是多少来划分子集
        // f[i] = max(f[i-1],f[i-2],...f[1])+1;
        // f[1]=1;
        if(nums.length==1)return 1;
        int[] f=new int[nums.length+1];
        f[1]=1;
        int res=0;
        for(int i=2;i<=nums.length;i++)
        {
            int max=0;
            for(int j=1;j<=i-1;j++) 
                if(nums[j-1]<nums[i-1]) // 这里nums和f下标差一位,需要偏移
                    max=Math.max(f[j],max);
            f[i]=max+1;
            res=Math.max(res,f[i]);
        }
        return res;
    }
}

 

标签:nums,300,递增,int,length,序列,leetcode
From: https://www.cnblogs.com/lxl-233/p/18401627

相关文章

  • 714. 买卖股票的最佳时机含手续费(leetcode)
    https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/classSolution{publicintmaxProfit(int[]prices,intfee){//f[i][j]表示前i天进行交易购买,j=0表示持有股票,j=1表示未持有股票,划分两个状态//f[i][0]=......
  • DeepMind新成果被批像广告?AlphaProteo可高效设计靶蛋白结合物,亲和力提高300倍
    AlphaFold在蛋白质预测领域一骑绝尘,AlphaFold3更是突破限制,实现了所有生命分子的预测,其发布时便有声音称,AlphaFold3的结构化预测与生成将加速AIDD(ArtificialIntelligence-drivenDrugDesign,AI驱动药物设计)的发展。如今,DeepMind面向AI药物设计再开一枪——发布用于......
  • Leetcode算法挑战:详解如何实现交替合并字符串的解题思路
    Leetcode算法挑战中的“交替合并字符串”问题,要求我们将两个字符串以交替的方式合并,终形成一个新的字符串。乍一看,这道题目似乎不复杂,但要写出高效且简洁的解法,还需要一定的思路和技巧。一、问题描述题目要求给定两个字符串word1和word2,将它们按照索引依次交替合并。如果某个......
  • LeetCode刷题-栈
    一:栈1、栈的特性:栈和队列不一样;队列是先进先出;而队列是先进后出;后进后出!2、栈的常见操作defcreate_stack():stack=[]#在python中;通常用列表实现栈的操作returnstackdefpush(stack,data):stack.append(data)#将data压入栈中defpeek(stack):returnsta......
  • 算法练习小技巧之有序集合--套路详细解析带例题(leetcode)
    前言:    本文详细讲解Python中的有序集合SortedList和C++中的有序集合multiset的用法,配合leetcode的例题来展示实际的用处。(本人水平不够,还无法讲解有序集合的实现方法,只会用)    觉得有帮助或者写的不错可以点个赞,后面也有几道我找出来的题目可以用这个方......
  • 2024.9.6 leetcode 70 爬楼梯 (哈希表/动态规划)
    题面70.爬楼梯-力扣(LeetCode)题解:极其经典的一道动态规划,比如要跳到10楼有f(10)种方法,可以分为1、先跳到9楼再往上跳1楼2、先跳到8楼再往上跳2楼,所以f(10)=f(8)+f(9),昨天复习了哈希表,所以用哈希练习一下。classSolution{public:intclimbStairs(intn){uno......
  • Leetcode面试经典150题-210.课程表II
    这个题是图的问题,因为图的拓扑排序在实际应用中有非常多的用途图,所以最近考的越来越多解法都在代码里,不懂就留言或者私信看这个题之前一定要好好看看207题我写的题解,也许207看懂了的话,210只是一个coding问题了Leetcode面试经典150题-207.课程表-CSDN博客一定要看!一定要看!......
  • LeetCode Hot100刷题记录-21. 合并两个有序链表
    题目描述:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。需要知道的pre-knowledge:list1和list2起初可直接代表两个链表的头节点,无需用另外的变量比如current来表示头节点。思路:准备一个虚拟节点,指向合并完成新链表的h......
  • LeetCode Hot100刷题记录-206. 反转链表
    206.反转链表题目描述:给你单链表的头节点head,请你反转链表,并返回反转后的链表。这道题要用到两个指针,一个current指向当前节点,另一个prev指向当前节点的上一个节点。首先让current指向头节点head,prev指向head的前一个也就是null,这里要用next变量来暂时存储current的下一个......
  • 0906 shell编程与基础算法(leetCode)
    哈希表的基本知识:哈希表(HashTable)又称散列表,是除顺序存储结构、链式存储结构和索引表存储结构之外的又一种存储结构。哈希碰撞:解决办法开放定址法:是一类以发生冲突的哈希地址为自变量,通过某种哈希冲突函数得到一个新的空闲的哈希地址的方法。(1)线性探测法从发生冲突的地......