当前位置: 首页 > news >正文

【CT】LeetCode手撕—300. 最长递增子序列

目录

  • 题目
  • 1- 思路
  • 2- 实现
    • ⭐300. 最长递增子序列——题解思路
  • 3- ACM 实现


题目

  • 原题连接:300. 最长递增子序列

1- 思路

  • 模式识别:最长递增子序列——> 利用动规五部曲 解决 ——> 借助 i 和 j 指针,其中 j < i

动规五部曲

  • 1.定义 dp 数组确定 dp数组的含义
    • int[] dp = new int[nums.length]:——> dp[i] 代表 以 i 为结尾的数组的最长递增子序列
  • 2.递推公式
    • if(nums[i]>nums[j]) { dp[i] = Math.max(dp[i],dp[j]+1); }
  • 3.初始化
    • 所有初始化都为 1 ,Arrays.fill(dp,1);
  • 4.遍历顺序
    • 利用 ij 进行遍历

2- 实现

⭐300. 最长递增子序列——题解思路

在这里插入图片描述

class Solution {public int lengthOfLIS(int[] nums) {// 1. 定义 dp数组int[] dp = new int[nums.length];// 2. 递推公式// if(nums[i] > nums[j] )// {dp[i] = Math.max(dp[i],dp[j+1]);}// 3. 初始化Arrays.fill(dp,1);// 4. 遍历顺序for(int i = 1 ; i < nums.length;i++){for(int j = 0 ; j < i ;j++){if(nums[i]>nums[j]){dp[i] = Math.max(dp[i],dp[j]+1);}}}int res = 1;for(int i:dp){res = Math.max(res,i);}return res;}
}

3- ACM 实现

public class longetSub {public static int longest(int[] nums) {// 1.定义 dp 数组int[] dp = new int[nums.length];// 2. 递推公式// dp[i] = Math.max(dp[i],dp[j]+1);// 3. 初始化Arrays.fill(dp, 1);// 4.遍历顺序for (int i = 1; i < nums.length; i++) {for (int j = 0; j < i; j++) {if (nums[i] > nums[j]) {dp[i] = Math.max(dp[i], dp[j] + 1);}}}int res = 1;for (int i : dp) {res = Math.max(i,res);}return res;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("输入数组长度");int n = sc.nextInt();int[] nums = new int[n];for(int i = 0 ; i < n ; i ++){nums[i] = sc.nextInt();}System.out.println("最长递增子序列为"+longest(nums));}
}

相关文章:

  • 手机在网状态-手机在网状态查询-手机在网站状态接口
  • wsl2平台鸿蒙全仓docker编译环境快速创建方法
  • Spring自定义标签体系和应用
  • 嵌入式软件stm32面试
  • 如何减少sql出现问题
  • MacOS设备远程登录配置结合内网穿透实现异地ssh远程连接
  • k8s及etcd的每日自动备份及故障时的还原脚本
  • windows环境下,怎么查看本机的IP、MAC地址和端口占用情况
  • day64 图论 图论理论基础 深搜 广搜 98. 所有可达路径
  • Java学习 - MySQL视图的练习 实例
  • R语言——数据与运算
  • gitlab仓库中用git bash生成不是默认路径的ssh秘钥
  • TS-RadiMation测试软件如何在序列测试中发挥作用?
  • 【机械键盘调整灯光】腹灵MK870说明书(个人备用)
  • 操作系统期末快速复习(概念)
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 2017-09-12 前端日报
  • ES6之路之模块详解
  • export和import的用法总结
  • HashMap剖析之内部结构
  • iOS 颜色设置看我就够了
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Java反射-动态类加载和重新加载
  • java小心机(3)| 浅析finalize()
  • js面向对象
  • Less 日常用法
  • opencv python Meanshift 和 Camshift
  • SegmentFault 2015 Top Rank
  • session共享问题解决方案
  • ubuntu 下nginx安装 并支持https协议
  • use Google search engine
  • Xmanager 远程桌面 CentOS 7
  • Yii源码解读-服务定位器(Service Locator)
  • 高程读书笔记 第六章 面向对象程序设计
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 前端设计模式
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • ​业务双活的数据切换思路设计(下)
  • ‌内网穿透技术‌总结
  • #### go map 底层结构 ####
  • #DBA杂记1
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (done) 声音信号处理基础知识(4) (Understanding Audio Signals for ML)
  • (Qt) 默认QtWidget应用包含什么?
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (二十三)Flask之高频面试点
  • (附源码)ssm码农论坛 毕业设计 231126
  • (含答案)C++笔试题你可以答对多少?
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (四) 虚拟摄像头vivi体验
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • (转)Android学习笔记 --- android任务栈和启动模式