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

Leetcode 3350 Adjacent Increasing Subarrays Detection II

题意:有一个数组, 求最大值k,满足两个相邻的长度为k的子数组是严格递增的。

题解:满足两个相邻的长度为k的子数组是严格递增的,这个验证起来是比较容易的,求解是比较难的。想到可能可以二分。
问题转化成,验证两个相邻的长度为k的子数组是严格递增的。
子数组严格递增的问题可以想到用dp

class Solution {
public:
    int maxIncreasingSubarrays(vector<int>& nums) {
        int l = 0;
        int r = nums.size() / 2;
        while (l < r) {
            int mid = l + (r - l + 1) / 2;
            if(hasIncreasingSubarrays(nums,mid)) {
                l = mid;
            } else {
                r = mid - 1;
            }
        }
        return l;
    }
    

    bool hasIncreasingSubarrays(vector<int>& nums, int k) {
        int n = nums.size();
        vector<int> dp(n, 1);
        for(int i = 1; i < n; i++) {
            if(nums[i] > nums[i-1]) {
                dp[i] = dp[i-1] + 1;
            }
        }  

        for(int i = 0; i <= n - k - 1; i++) {
            if(dp[i] >= k && dp[i+k] >= k)
                return true;
        }
        return false;
    }
};

算法复杂度(2nlog2n),空间复杂度O(n)


http://www.kler.cn/a/392252.html

相关文章:

  • DevOps工程技术价值流:加速业务价值流的落地实践与深度赋能
  • 结构体(c语言)
  • 虚拟机安装Ubuntu 24.04服务器版(命令行版)
  • [代码随想录Day10打卡] 理论基础 232.用栈实现队列 225. 用队列实现栈 20. 有效的括号 1047. 删除字符串中的所有相邻重复项
  • 图像处理实验二(Image Understanding and Basic Processing)
  • 24/11/13 算法笔记<强化学习> DQN算法
  • ResNet网络详解
  • 【Spring】@Autowired与@Resource的区别
  • 常用环境部署(二十三)——Docker部署ERPNext
  • C++学习笔记----11、模块、头文件及各种主题(一)---- 模板概览与类模板(8)
  • 深度学习-神经网络基础-激活函数与参数初始化(weight, bias)
  • [Linux]:IO多路转接之epoll
  • 鸿蒙next版开发:订阅应用事件(ArkTS)
  • EasyExcel 使用多线程按顺序导出数据
  • linux GPIO
  • 【Linux】进程状态与进程优先级
  • torch jit 动态获取buffer
  • upload-labs通关练习
  • 闲鱼监控助手货源获取技巧(轻松找到优质货源的方法)
  • 【大数据测试spark+kafka-详细教程(附带实例)】
  • Unity3D设置3D物体不超出相机视角范围(物体一直保持在相机视角范围内)
  • Android S长按文件或视频或编辑中文字或输入框中文字不会弹出分享菜单
  • 零基础入门转录组下游分析——预后模型之多因素cox模型
  • 小西作业1_third order plant(SPM)
  • Linux也有百度云喔~
  • 在Java中使用ModelMapper简化Shapefile属性转JavaBean实战