首页 > 编程语言 >leetcode 674 最长连续递增序列 C/C++ 动态规划,动态规划空间优化,双指针 三种解法,初识动态规划

leetcode 674 最长连续递增序列 C/C++ 动态规划,动态规划空间优化,双指针 三种解法,初识动态规划

时间:2022-09-04 19:22:12浏览次数:69  
标签:right nums 674 max int 动态 规划 dp 指针

#if 0 class Solution {  //动态规划 public:     int findLengthOfLCIS(vector<int>& nums) {         vector<int> dp(nums.size());         int max = 0;         for(int i = 0;i< nums.size()-1; i++){             if(nums.at(i+1)> nums.at(i)) {                 dp.at(i+1) = dp.at(i) + 1;             }             if(dp.at(i+1) > max) max = dp.at(i + 1);         }         return max+1;     } }; #endif  #if 0 class Solution {  //动态规划 空间优化 public:     int findLengthOfLCIS(vector<int>& nums) {         int LengthOfLCIS = 1; //保存上一次计算的连续递增的子序列的长度         int max = 1; // 保存最长的子序列的长度         for(int i = 0;i< nums.size()-1; i++){             if(nums.at(i+1)> nums.at(i)) { //如果连续递增,长度增加                 LengthOfLCIS++;              }else{                         //不递增了,恢复原样。                 LengthOfLCIS = 1;              }             max = LengthOfLCIS > max ? LengthOfLCIS : max;         }         return max;     } }; #endif 
class Solution { // 双指针 public:     int findLengthOfLCIS(vector<int>& nums) {         int left=0,right = 0;         int max = 1;         for(int i = 0;i< nums.size()-1; i++){             right++;             if(nums.at(i+1)<=nums.at(i)) {                 max = (right-left) > max ? (right-left) : max;                 left=right;             }         }         max = (right - left + 1) > max ? (right - left + 1) : max;  //最后一次判断是否右指针和左指针的差距是否比max 大,最后一次判断时,右指针和左指针之间的距离需要加1才是所需的长度。         return max ;     } };

标签:right,nums,674,max,int,动态,规划,dp,指针
From: https://www.cnblogs.com/daniel123/p/16655749.html

相关文章

  • frida 动态检测工具集
    frida是面向开发、反向工程、安全研究的动态检测工具集特性脚本化可移植强,支持多种语言的免费完备的测试说明frida核心部分基于c编写,使用quickjs注入到目标进......
  • 驱动阻尼振荡器如何工作(动态系统)
    驱动阻尼振荡器如何工作(动态系统)Photoby乔伊班克斯on不飞溅PDM阻尼驱动振荡器:精确可解性、经典状态交叉和自交叉(arXiv)作者:奥马尔·穆斯塔法抽象的:在......
  • 【云原生】K8s pod 动态弹性扩缩容 HAP(metrics-server)
    目录一、概述二、安装metrics-server1)HAP前提条件2)开启APIAggregator3)开始安装metrics-server三、HorizontalPodAutoscaler工作原理1)原理架构图2)HPA扩缩容算法1、......
  • JQuery——动态添加元素导致点击事件失效
    前言因为博皮当前版本有人反馈文章中标题导航点击无法生成;jquery-click-invalid:https://codesandbox.io/s/jquery-click-invalid-forked-xpt352内容一开始我以为......
  • Java动态性
    Java动态性动态语言程序运行时可以改变程序结构或变量类型。典型动态语言:Python、ruby、javascript等C/C++、Java不是动态语言,但Java可称为“准动态语言”,它有一定动态......
  • 用 CSharpCompilation 进行动态编译
    项目里需要用到动态编译。网上一大片的介绍C#动态编译的,是CodeDomProvider,这个东西确实好用。但是说好了支持.net6.0 的,但运行时却说不支持当前平台。骗子!网上找的......
  • Golang 动态脚本调研
    一、技术背景1.1程序的动态链接技术在实际开发过程中,我们经常需要动态地更新程序的功能,或者在不变更程序主体文件的情况下添加或者更新程序模块。1.1.1动态链接库首......
  • 2 工具系统规划和实现的功能
    一:工具系统规划和实现的功能主要技术点攻克:1:程序间调用和参数传递。2:数据文件对应多结构和内部变量定义多结构。3:调用程序间的同数据文件的数据结构。4:共通程序的程序......
  • UE4中ProceduralMesh组件应用动态裁切Mesh
     Vertices即为顶点信息(顶点坐标为本地坐标,原点即为Actor根组件)。构建矩形需要4个顶点即可Triangles三角形信息。使用顶点进行三角形拼接,顺序不要乱,使用数组下标。第一......
  • 澳大利亚市场家电标准准入最新动态!
    澳大利亚标准委员会与2022年6月24日发布了一系列新版标准。其中,AS/NZS60335.1:2022应在IEC60335-1第六版对应的分标发布之后使用。 此外,澳大利亚标准委员会发布的标......