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

3349、检测相邻递增子数组 Ⅰ

3349、[简单] 检测相邻递增子数组 Ⅰ

1、题目描述

给你一个由 n 个整数组成的数组 nums 和一个整数 k,请你确定是否存在 两个 相邻 且长度为 k严格递增 子数组。具体来说,需要检查是否存在从下标 ab (a < b) 开始的 两个 子数组,并满足下述全部条件:

  • 这两个子数组 nums[a..a + k - 1]nums[b..b + k - 1] 都是 严格递增 的。
  • 这两个子数组必须是 相邻的,即 b = a + k

如果可以找到这样的 两个 子数组,请返回 true;否则返回 false

子数组 是数组中的一个连续 非空 的元素序列。

2、解题思路

要解决这个问题,我们需要检查数组 nums 中是否存在两个相邻的严格递增子数组,且每个子数组的长度为 k。因此,可以将问题分解为以下步骤:

  1. 检查递增子数组:我们先遍历 nums,找出从每个索引 i 开始的长度为 k 的子数组是否为严格递增。
  2. 相邻递增子数组检查:如果在遍历过程中找到了满足条件的相邻严格递增子数组,则返回 true。如果遍历结束没有找到,返回 false。

3、解题过程

  1. 从数组的每个索引 i 开始,检查 nums[i..i+k-1] 是否严格递增。
  2. 如果 nums[i..i+k-1]nums[i+k..i+2*k-1] 都是严格递增的,且满足两个子数组是相邻的,则返回 true
  3. 如果遍历完毕没有找到满足条件的子数组,则返回 false

4、代码实现

class Solution {
public:bool hasIncreasingSubarrays(vector<int>& nums, int k) {int n = nums.size();// 边界情况检查if (n < 2 * k) {return false;}// 遍历数组, 检查相邻的递增子数组for (int i = 0; i <= n - 2 * k; ++i) {bool firstIncreasing = true, secondIncreasing = true;// 检查第一个长度为 k 的子数组是否严格递增for (int j = i; j < i + k - 1; ++j) {if (nums[j] >= nums[j + 1]) {firstIncreasing = false;break;}}// 检查第二个长度为 k 的子数组是否严格递增for (int j = i + k; j < i + 2 * k - 1; ++j) {if (nums[j] >= nums[j + 1]) {secondIncreasing = false;break;}}// 如果相邻的两个子数组都是严格递增的, 则返回 trueif (firstIncreasing && secondIncreasing) {return true;}}// 遍历完后仍未找到符合条件的子数组, 返回 falsereturn false;}
};
http://www.lryc.cn/news/490883.html

相关文章:

  • C++笔记之函数入参传递std::unique_ptr 时使用 std::move的场景
  • 怎么只提取视频中的声音?从视频中提取纯音频技巧
  • 数仓工具—Hive语法之窗口函数中的 case when
  • 基于微信小程序的酒店客房管理系统+LW示例参考
  • Elasticsearch客户端在和集群连接时,如何选择特定的节点执行请求的?
  • 【AI最前线】DP双像素sensor相关的AI算法全集:深度估计、图像去模糊去雨去雾恢复、图像重建、自动对焦
  • CTF之密码学(Polybius密码)
  • 【C++篇】从售票窗口到算法核心:C++队列模拟全解析
  • clipboard
  • 【Mac】VMware Fusion Pro 安装 CentOS 7
  • 游戏引擎学习第22天
  • 洛谷 B2038:奇偶 ASCII 值判断
  • APIRouter
  • 算法模板2:位运算+离散化+区间合并
  • 钉钉授权登录
  • 【视频】二维码识别:libzbar-dev、zbar-tools(zbarimg )
  • C语言中的结构体,指针,联合体的使用
  • 基于卡尔曼滤波器的 PID 控制
  • CVE-2022-26201
  • 海信Java后端开发面试题及参考答案
  • 传智杯 3-初赛:终端
  • 大数据新视界 -- Hive 数据分区:精细化管理的艺术与实践(上)(7/ 30)
  • 【中间件】Redis
  • RTSP播放器EasyPlayer.js播放器分辨率高的视频在设置container的宽高较小时,会出现锯齿状的画面效果
  • Java爬虫:获取商品详情的实践之旅
  • 行业分析---2024年小鹏汽车AI Day及三季度财报
  • 写时复制,读时加载
  • Python和R基因组及蛋白质组学和代谢组学
  • selenium环境搭建详细过程
  • Linux知识 - VIM