面试算法8:和大于或等于k的最短子数组

news2024/11/25 2:52:16

题目

输入一个正整数组成的数组和一个正整数k,请问数组中和大于或等于k的连续子数组的最短长度是多少?如果不存在所有数字之和大于或等于k的子数组,则返回0。例如,输入数组[5,1,4,3],k的值为7,和大于或等于7的最短连续子数组是[4,3],因此输出它的长度2。

分析

首先,指针P1和P2都指向数组中的第1个数字,当指针P1和P2之间的子数组数字之和小于k时,向右移动指针P2,直到两个指针之间的子数组数字之和大于k,否则向右移动指针P1,直到两个指针之间的子数组数字之和小于k。
在这里插入图片描述

public class Test {
    public static void main(String[] args) {
        int[] nums = {5, 1, 4, 3};
        int result = minSubArrayLen(7, nums);
        System.out.println(result);
    }

    public static int minSubArrayLen(int k, int[] nums) {
        int left = 0;
        int sum = 0;
        int minLength = Integer.MAX_VALUE;
        for (int right = 0; right < nums.length; right++) {
            sum += nums[right];
            while (left <= right && sum >= k) {
                minLength = Math.min(minLength, right - left + 1);
                sum -= nums[left++];
            }
        }

        return minLength == Integer.MAX_VALUE ? 0 : minLength;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1022685.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

部署大数据平台详细教程以及遇到的问题解答(ubuntu18.04下安装ambari2.7.3+HDP3.1.0)

节点准备: 我搭建的是3台,节点可以随意。建议最少是3台 hostname ip 角色 ubuntu-1804-1 172.21.73.53 从节点 ubuntu-1804-2 172.21.73.54 主节点 ubuntu-1804-3 172.21.73.55 从节点 一:关闭所有节点的防火墙 sudo ufw disable二:配置时钟同步NTP 所有节点安装ntp sud…

nodejs使用jsonwebtoken/jwt-decode生成jwt和解密token的方法

首先需要安装jsonwebtoken/jwt-decode依赖&#xff0c;这个就不用说了。 生成jwt的token&#xff0c;需要有一个加密用的salt&#xff0c;然后使用jwt.sign方法生成jwt token,具体如下&#xff1a; const jwt require("jsonwebtoken"); const jwtSalt "jasdo…

LinkedList相较于Arravlist的特点/优化

Arravlist底层是内存空间连续的数组&#xff0c;可以根据下标进行随机访问&#xff0c;效率比较高&#xff0c;因为在根据下标访问某一个元素时&#xff0c;并不是一个一个去查&#xff0c;而是算出来这个下标的地址&#xff0c;直接根据这个地址的指向去获取的&#xff0c;因为…

中国人民大学与加拿大女王大学金融硕士——在职读研,我们一起微笑前行

人生总有不期而遇的温暖&#xff0c;也有生生不息的希望。想要更好的生活&#xff0c;就先让生活看到最好的你。对于已经萌发在职读研的你&#xff0c;是否找到合适的院校呢&#xff1f;中国人民大学与加拿大女王大学金融硕士项目符合你的预期吗&#xff1f; 中国人民大学与加拿…

C++11的半同步半异步线程池

C11的半同步半异步线程池 简介同步队列Take函数Add函数Stop函数SyncQueue完整代码 线程池主函数测试 简介 半同步半异步线程池用的比较多&#xff0c;实现也比较简单。 其中同步层包括同步服务层和排队层&#xff0c;指的是将接收的任务排队&#xff0c;将所有的任务排队到一…

【数据分享】我国七普的乡镇(街道)人口数据(免费获取)

人口数据是我们在各项研究中都经常使用的数据&#xff01;人口数据的主要来源是人口普查&#xff0c;全国性的人口普查每十年进行一次。最近一次的人口普查是第七次全国人口普查&#xff0c;简称七普。七普统计的是2020年的人口数据。 之前我们分享过省市县三个层级的七普的人…

在业务和IT的视角中,MES管理系统有哪些重要性

在当今制造业中&#xff0c;MES生产管理系统已成为生产管理层面不可或缺的一部分。MES作为一款集成的软件解决方案&#xff0c;旨在连接企业的各个生产环节&#xff0c;实现生产计划、调度、执行和跟踪。本文将从业务和IT视角出发&#xff0c;探讨MES管理系统的重要性和实施细节…

PMP对项目管理工作有什么用?

首先&#xff0c;项目管理岗位基本是不限行业的&#xff0c;所以&#xff0c;只要是项目管理相关的岗位&#xff0c;pmp证书都是能起到效果的&#xff0c;不用担心局限性太大&#xff0c;而且&#xff0c;pmp证书是国际证书&#xff0c;无论国企还是外企&#xff0c;都是认可这…

go net/http 源码解读

回顾 1. HTTP Server 在 go 中启动一个 http server 只需短短几行代码 func PingHandler(w http.ResponseWriter, r *http.Request) {io.WriteString(w, "pong!") }func main() {http.HandleFunc("/ping", PingHandler)log.Fatal(http.ListenAndServe(&…

RocketMQ 源码分析——Producer

文章目录 消息发送代码实现消息发送者启动流程检查配置获得MQ客户端实例启动实例定时任务 Producer 消息发送流程选择队列默认选择队列策略故障延迟机制策略*两种策略的选择 技术亮点:ThreadLocal 消息发送代码实现 下面是一个生产者发送消息的demo&#xff08;同步发送&#…

Linux环境中数据误删除后恢复指导

一、背景 在很多Linux系统运维工作中&#xff0c;很多人会遇到敲错命令&#xff0c;或复制命令出错&#xff0c;或直接执行了rm -rf命令&#xff0c;事后才恍然大悟&#xff0c;闯下大祸&#xff0c;抛开问题&#xff0c;如果真的遇到这种情况&#xff0c;我们该如何应对呢&…

如何使用IP归属地查询API来追踪网络活动

引言 在当今数字化世界中&#xff0c;了解网络活动的源头和位置对于网络安全、市场研究和用户体验至关重要。IP归属地查询API是一种强大的工具&#xff0c;可以帮助您追踪网络活动并获取有关IP地址的重要信息。本文将探讨如何使用IP归属地查询API来追踪网络活动&#xff0c;以…

[C++ 网络协议] 多播与广播

目录 1. 多播 1.1 多播的使用情形 1.2 多播的原理 1.3 如何实现多播 1.4 多播的代码实现 2. 广播 2.1 广播与多播的区别 2.2 广播的分类 2.3 实现广播 1. 多播 1.1 多播的使用情形 考虑一种情形&#xff0c;你要向10000名用户发送数据&#xff0c;此时如果用TCP提供服…

MDPI模板报错的问题---提示缺少sty文件

MDPI模板报错的问题—提示缺少sty文件 平时大多数提交IEEE trans模板时大多使用CTEX编译&#xff0c;然而&#xff0c;MDPI模板需要用texlive&#xff0c;二者之间如果先安装CTEX后安装texlive将会导致库文件的冲突。结果将会报缺少sty的文件错。网上提供了很多解决方案&#…

Nmap安装和使用详解

Nmap安装和使用详解 Nmap概述功能概述运行方式 Nmap安装官方文档参考&#xff1a;Nmap参数详解目标说明主机发现端口扫描Nmap将目标主机端口分成6种状态&#xff1a;Nmap产生结果是基于机器的响应报文&#xff0c;而这些主机可能是不可信任的&#xff0c;会产生一些迷惑或者误导…

如何将 ONLYOFFICE 协作空间与单页面应用集成

2023 年春季&#xff0c;我们推出了 ONLYOFFICE 协作空间&#xff0c;这是一个先进的联合办公平台&#xff0c;旨在加强与客户、合作伙伴和第三方的文档协作。使用可自定义的房间和高级安全功能可以彻底改变您的文档协作方式。在本博文中&#xff0c;我们将以 GitHub Pages 为例…

Linux之操作文件命令

目录 一、阅览文件 1、cat 2、head 3、tail 4、more 5、less 二、过滤命令——grep 1、格式 2、选项 3、匹配模式 三、cut切割命令 1、格式 2、选项 四、sort排序命令 1、格式 2、选项 五、uniq去重命令 六、替换文件中的字符显示tr 1、格式 2、选项 七、…

第8章 MySQL的数据目录

8.1 数据库和文件系统的关系 像 InnoDB 、 MyISAM 这样的存储引擎都是把表存储在磁盘上的&#xff0c;而操作系统用来管理磁盘的又被称为 文件系统 &#xff0c;所以用专业一点的话来表述就是&#xff1a;像 InnoDB 、 MyISAM 这样的存储引擎都是把表存储在文件系统上的。当我…

API接口采集电商平台阿里巴巴中国站获得1688商品评论数据货品评分、评价内容接口调用指南

淘宝API商品评论接口&#xff0c;主要用于获取某个商品的评价信息。通过该接口&#xff0c;我们可以获取到商品的所有评价内容、评价时间、评价等级等相关信息&#xff0c;帮助我们更好地了解用户对商品的反馈&#xff0c;进而进行数据分析和业务优化。 1688.item_review-获得…

投票制作创建流量主小程序开发

很多企业、团队、门店商家有创建投票活动的需求&#xff0c;单独开发一套成本过高&#xff0c;所以会找一些市面上可以创建投票活动的工具。基于此开发了一款可以创建制作投票活动的小程序。 小程序主要是投票活动的制作、创建&#xff0c;可以接入流量主广告和会员功能&#…