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

【OJ刷题】同向双指针问题

这里是阿川的博客,祝您变得更强

✨ 个人主页:在线OJ的阿川
💖文章专栏:OJ刷题入门到进阶
🌏代码仓库:


写在开头

现在您看到的是我的结论或想法但在这背后凝结了大量的思考、经验和讨论


在这里插入图片描述

在这里插入图片描述

目录

  • 1. 题目介绍
  • 2. 题目拆解
  • 3. 具体详情
  • 4. 具体代码


1. 题目介绍

难度:中
题目练习:长度最小的子数组
题目信息:给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其总和大于等于 target 的长度最小的子数组[numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。
举个例子: 具体如图1所示
在这里插入图片描述

图1 举个例子

2. 题目拆解

本质上:观察规律,利用滑动窗口
特点是:同向双指针,不存在回退
解决方法:同向双指针算法,如图2所示
在这里插入图片描述

图2 同向双指针

3. 具体详情

1. 先计算每个具体数的累加总和
2. 判断累加总和与目标值之间的大小关系,从而进行移动判断
3. 返回具体的数组大小值


4. 具体代码

class Solution {
public:
    int minSubArrayLen(int target, vector<int>& nums) {
        int n = nums.size(), sum = 0, len = INT_MAX; //一个边界大小,一个是总和,一个是返回的数组大小
        for(int left = 0, right = 0; right < n; right++)
        {
            sum += nums[right]; //每次循环进来先更新总和
            while(sum >= target) //判断移动方向
            {
                len = min(len, right - left + 1);
                sum -= nums[left++];
            }
        }
        return len == INT_MAX ? 0: len; //返回数组大小
    }
};

5. 夹带私货

若你能看到看到这篇文章且能看到这,则说明你我有缘留个关注吧,后面还会接着计算机408、底层原理、开源项目、以及数据、后端研发相关、实习、笔试/面试、秋招/春招、各种竞赛相关、简历相关、考研、学术相关……,祝你我变得更强


好的,到此为止啦,祝您变得更强
在这里插入图片描述

在这里插入图片描述

道阻且长 行则将至
个人主页:在线OJ的阿川大佬的支持和鼓励,将是我成长路上最大的动力 在这里插入图片描述

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

相关文章:

  • Vscode辅助编码AI神器continue插件
  • Linux存储管理之核心秘密(The Core Secret of Linux Storage Management)
  • 【网络安全 | 漏洞挖掘】HubSpot 全账户接管(万字详析)
  • MP4 与Fragmented MP4 (fMP4)的区别
  • 51单片机——蜂鸣器模块
  • VS2022 C#创建Com组件和调用
  • CSS语言的编程范式
  • 变压器的啸叫、气隙、中心抽头
  • 表格、列表和表单标签
  • JAVA开发学习Day8
  • hive在大数据体系里面起到什么作用
  • CSS 伪类和伪元素:为你的选择器注入更多活力
  • 开源免费GitHub搭建资源分享站
  • NGINX 支持 UDP 协议
  • 【机器学习】农业 4.0 背后的智慧引擎:机器学习助力精准农事决策
  • Element-plus、Element-ui之Tree 树形控件回显Bug问题。
  • 【数据结构-堆】力扣3296. 移山所需的最少秒数
  • 第P5周-Pytorch实现运动鞋品牌识别
  • 英伟达开启“AI 代理时代” | AI日报0108
  • 新手入门 React .tsx 项目:从零到实战
  • Servlet 和 Spring MVC:区别与联系
  • 51c自动驾驶~合集45
  • h264之多视点mvc编码及解码过程(JMVC平台举例)
  • CSS语言的数据结构
  • 条款47:请使用 traits classes 表现类型信息(Use traits classes for information about types)
  • 【利用 Unity + Mirror 网络框架、Node.js 后端和 MySQL 数据库】