首页 > 编程语言 >力控算法每日一练:209. 长度最小的子数组(java)

力控算法每日一练:209. 长度最小的子数组(java)

时间:2024-06-11 23:04:48浏览次数:19  
标签:right java target 209 int 力控 result 数组 left

给定一个含有 n 个正整数的数组和一个正整数 target 。

找出该数组中满足其总和大于等于 target 的长度最小的 

子数组

 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度如果不存在符合条件的子数组,返回 0 。

class Solution {
    public int minSubArrayLen(int target, int[] nums) {
     int left=0;
     int sum=0;
     int result=Integer.MAX_VALUE;
     for( int right=0;right<nums.length;right++){
        sum+=nums[right];
        while(sum>=target){
            result=Math.min(result,right-left+1);
            sum-=nums[left++];
        }
     }
     return result == Integer.MAX_VALUE ? 0:result;
    }
}

java的代码如上,我的理解就是:弄个右指针和左指针,和一个result弄最大,然后用右指针遍历数组,当sum求和达到target时,就把right-left+1得到的长度返回,跟result比,小的的留下,如果sum一直大于target,那么就增加left缩短长度,看能不能大于等于target,如果不行则退出while循环,继续累加right指针,以此类推,最后得到最短长度的。谢谢观看!

标签:right,java,target,209,int,力控,result,数组,left
From: https://blog.csdn.net/2301_77695569/article/details/139610563

相关文章

  • 【练习代码】6.11 java学习记录:继承与多态(实例:媒体资料库的设计)
    设计一个媒体资料库,能存入不同类别的媒体资料,例如CD与DVD,并且能完成添加与列表等操作,需要些什么?最基础的想法一个代表整体库的DataBase类,内部的属性包括CD和DVD的Arraylist,对应操作通过定义自己的方法来实现,部分代码如下:publicclassDatabase{privateArrayList<CD>......
  • JAVA开发 PDF文件生成表格,表格根据内容自动调整高度
    1、展示效果2、相关功能实现JAVA开发使用ApachePDFBox库生成PDF文件,绘制表格3、实现代码importorg.apache.pdfbox.pdmodel.PDDocument;importorg.apache.pdfbox.pdmodel.PDPage;importorg.apache.pdfbox.pdmodel.PDPageContentStream;importorg.apache.pdfbo......
  • 2024最强Java面试八股
    Java基础八股文(背诵版)Java语言具有哪些特点?Java为纯面向对象的语言。它能够直接反应现实生活中的对象。具有平台无关性。Java利用Java虚拟机运行字节码,无论是在Windows、Linux还是MacOS等其它平台对Java程序进行编译,编译后的程序可在其它平台运行。Java为解释型......
  • 使用 Flink SQL 读取本地csv文件(Java实现)
    data.csv内容:1,Tom,152,Lily,133,Mike,214,John,205,Emma,186,Sophia,197,David,228,James,169,Olivia,1710,Robert,2311,Emily,1412,Daniel,2513,Amelia,24代码:packagecom.auguigu.demo;importorg.apache.flink.streaming.api.datastream.DataStream;impo......
  • 线程介绍及其Java如何用Thread 类创建线程和操作线程方法
    目录一、进程和线程1.1进程特征2.2线程特征2.3区别二、利用Thread类创建线程2.1通过创建Thread子类,重写run()方法2.2通过实现Runnable接口,重写run()方法2.3.Callable接口+FutureTask创建线程2.3三种方法区别1.通过创建Thread子类,重写run()方法2.通过实......
  • 基本数据类型 String,null 和 undefined,运算符,流程控制,JavaScript之数组,数组常用
    Ⅰ基本数据类型String【一】String类型String类型就是字符串类型【二】定义变量【1】常规变量var变量名="变量值";//一般用这种var变量名='变量值';不支持三引号【2】可以先声明不赋值先用varb;再对变量b赋值varb='6';【三】字符串的格式化输出语法......
  • 神奇的JavaScript弱等价类型转换
    JavaScript语言特性-类型转换JavaScript这门语言的类型系统从来没有它表面看起来的那样和善,虽然比起Java、C#等一众强类型语言,它的弱类型使用起来似乎是如此便利,但正因为它极高的自由度,所以才会衍生出令人摸不着头脑的荒诞行为。举个例子,虽然我们都知道一个包含内容的字符串会......
  • 探索Java的奥秘:网络编程、反射与注解的深度解析
    Java,作为一门功能强大的编程语言,在网络编程、反射和注解方面提供了丰富的支持和灵活的应用。本文将深入探讨这些概念,并通过实际例子来加深理解。一、Java网络编程1.1网络编程基础网络编程是Java语言的一大亮点,它允许我们创建能够通过网络进行通信的程序。Java提供了java......
  • 大学生HTML期末大作业——HTML+CSS+JavaScript美食网站(零食)
    HTML+CSS+JS【美食网站】网页设计期末课程大作业web前端开发技术web课程设计网页规划与设计......
  • 大学生HTML期末大作业——HTML+CSS+JavaScript购物商城(华为手机)
    HTML+CSS+JS【购物商城】网页设计期末课程大作业web前端开发技术web课程设计网页规划与设计......