首页 > 编程语言 >算法--2023.1.23

算法--2023.1.23

时间:2023-01-23 11:55:08浏览次数:45  
标签:nums -- 23 pos len int 2023.1 dp

1.力扣300--最长递增子序列

class Solution {
    public int lengthOfLIS(int[] nums) {
        //贪心算法,基本思路:dp数组维护长度为下表i的最长子序列的最后一个值的最小数
        int n = nums.length;
        int[] dp = new int[n+1];
        dp[1] = nums[0];
        int len = 1;
        for(int i = 1;i<n;i++){
            //遍历数组中的每一个元素,如果该元素比当前最长长度的最后一个值要大,我们把将最长长度加一,把这个值放在最后
            if(nums[i]>dp[len]){
                dp[++len] = nums[i];
                //System.out.println(dp[len]);
            //否则我们在dp这个数组中找到一个最大的但比nums[i]小的值,然后更新dp数组中后面的一个值,表示dp[pos+1]结尾的最小值为这个    
            }else{

                //这里采用二分查找,会存在一个特殊情况,所有值都比nums[i]大,所以这里采用pos变量解决
                int start = 1, end = len, mid = 0,target = nums[i], pos = 0;
                while(start<=end){
                    mid = (start+end)/2;
                    //System.out.println(mid);
                    if(dp[mid]<target){
                        pos = mid;
                        start = mid+1;
                    }else{
                        end = mid-1;
                    }
                }
                dp[pos+1] = target;
                System.out.println(start+1);
            }
        }
        return len;
    }
}

  

标签:nums,--,23,pos,len,int,2023.1,dp
From: https://www.cnblogs.com/lyjps/p/17065094.html

相关文章

  • 【整理】@Autowired飘红
    现象: 通过@Autowired在service层注入Mapper接口,在编辑情况下,无法找不到对应的bean,于是提示找不到对应bean的错误,但实际上,项目是可以正常运行的。可在File--Settings......
  • 第八章 数据可视化
    本章主要介绍数据可视化的一些辅助操作,而非制作图表主要内容:利用条形图显示数值情况、依据条件设置(填充)单元格、利用迷你图显示数据及其变化情况1、利用条形图显示数值......
  • 【Python基础学习】4.程序的控制结构
    主要参考来源:慕课嵩天老师的“Python语言程序设计”[https://www.icourse163.org/course/BIT-268001?tid=1468130447]4.1程序的分支结构:顺序结构、分支结构、循环结构单......
  • IPV6之无状态地址配置
           ......
  • JavaScript学习笔记—冒泡排序
    数组内各元素按升或降序排序[9,1,3,2,8,0,5,7,6,4]思路1:比较相邻两个元素,然后根据大小来决定是否交换它们的位置例子:第1次排序:1,3,2,8,0,5,7,6,4,9第2次排......
  • 写在新年之后
    兔年来了,虎年走了,虚岁又涨了,也更忙了。新博皮除夕和初一,我都在捣鼓博客园博客的设置,现在已经弄好了。如你所见,参考了大神\(BNDong\)的模板,自己修改了一些参数(平生第一......
  • caddyserver nginx adaper 简单说明
    caddyserver包含了一个强大的adapter架构设计,我们可以方便的进行caddyserver扩展nginx扩展的处理核心也是基于adapter模块扩展的,通过解析nginx.conf文件,然后转换......
  • hdu:剪花布条(kmp)
    ProblemDescription一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?Input......
  • spring boot——请求与参数校验——重要概念——配置Servlet、Filter、Listener——代
          代码配置:packageorg.example.webFilter.config;importorg.example.webFilter.filter.FirstFilter;importorg.example.webFilter.listener.Firs......
  • 小米-红米(Redmi)-note刷 Linux系统(二)【下载、备份篇】
    上一篇:小米-红米(Redmi)-note刷Linux系统(一)【基础篇】下一篇:小米-红米(Redmi)-note刷Linux系统(三)【下载准备篇】 要想不变砖,备份要在前。重要事情说3遍。先备份!!!先......