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

这篇具有很好参考价值的文章主要介绍了面试算法8:和大于或等于k的最短子数组。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目

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

分析

首先,指针P1和P2都指向数组中的第1个数字,当指针P1和P2之间的子数组数字之和小于k时,向右移动指针P2,直到两个指针之间的子数组数字之和大于k,否则向右移动指针P1,直到两个指针之间的子数组数字之和小于k。
面试算法8:和大于或等于k的最短子数组,算法,算法,面试,java文章来源地址https://www.toymoban.com/news/detail-730871.html

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;
    }
}

到了这里,关于面试算法8:和大于或等于k的最短子数组的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • js 校验 大于等于0小于等于100

    如果你想要在JavaScript中校验一个数值是否在0到100之间(包括0和100),你可以使用以下的函数: 你可以使用这个函数来检查一个值是否在指定的范围内。例如: 如果你需要在一个表单验证中使用这个函数,你可以这样做: 在这个例子中, validateRange 函数会检查用户输入的值

    2024年01月17日
    浏览(44)
  • MyBatis XML 中大于等于小于等于的写法

    第一种方法 :  XML转义字符 用了转义字符把 和 替换掉,然后就没有问题了 大于:gt; 小于:lt; 大于等于:gt;= 小于等于:lt;= 第二种方法 : ![CDATA[ sql语句 ]]语法 因为这个是xml格式的,所以不允许出现类似“”这样的字符,但是都可以使用![CDATA[ ]]符号进行说明,将此类符号

    2024年02月17日
    浏览(29)
  • mybatis xml 中的 大于、小于、等于 写法

    在 *.xml 中使用常规的 = = = 会与xml的语法存在冲突 字符名称 sql符号 转义字符 大于号 gt; 小于号 lt; 不等于 lt;gt; 大于等于号 = gt;= 小于等于号 = lt;= 与 amp; 单引号 \\\' apos; 双引号 \\\" quot; sql语句 xml 语句 转义字符 之前不能有空格,例如: gt; 或者 g t; 都是错误的 转义字符 必须以

    2023年04月26日
    浏览(36)
  • mybatis xml 中 大于、小于、等于 写法

    在 *.xml 中使用常规的 = = = 会与xml的语法存在冲突 字符名称 sql符号 转义字符 大于号 gt; 小于号 lt; 不等于 lt;gt; 大于等于号 = gt;= 小于等于号 = lt;= 与 amp; 单引号 \\\' apos; 双引号 \\\" quot; sql语句 xml 语句 转义字符 之前不能有空格,例如: gt; 或者 g t; 都是错误的 转义字符 必须以

    2023年04月25日
    浏览(28)
  • 【mybatis】xml 大于|小于|等于 写法及介绍

    在 *.xml 中使用常规的 = = = 会与xml的语法存在冲突 字符名称 sql符号 转义字符 大于号 gt; 小于号 lt; 不等于 lt;gt; 大于等于号 = gt;= 小于等于号 = lt;= 与 amp; 单引号 \\\' apos; 双引号 \\\" quot; sql语句 xml 语句 转义字符 之前不能有空格,例如: gt; 或者 g t; 都是错误的 转义字符 必须以

    2023年04月26日
    浏览(36)
  • LeetCode1578. 使绳子变成彩色的最短时间

    拆除成本 = 全部拆除 - 最大的不拆除 在统计成本的同时,维持一个成本的最大值

    2024年02月11日
    浏览(26)
  • Java密码校验(正则表达式):密码由这四种元素组成(数字、大写字母、小写字母、特殊字符),且必须包含全部四种元素;密码长度大于等于8个字符。

    对用户密码的强度进行校验,要求用户密码达到一定的强度,符合安全性要求。 密码必须由字母和数字组成(同时包括数字和数字);密码长度大于等于8个字符。 密码由这四种元素组成(数字、大写字母、小写字母、特殊字符),且必须包含全部四种元素;密码长度大于等

    2024年02月10日
    浏览(41)
  • java基础:求数组的最值

    方法一:顺序查找 先假设数组第一个元素为最值,然后和数组里的数按顺序进行比较得出最值,所以叫顺序查找。 代码如下 运行结果如下 方法二:使用冒泡排序的方法 什么是冒泡排序 冒泡排序是一种简单的排序算法,其基本思想是多次遍历待排序的元素,比较相邻的两个

    2024年01月19日
    浏览(36)
  • 为什么特征值的重数大于等于线性无关特征向量的个数

    关系就是,特征值的重数 ≥ 该特征值的线性无关向量的个数 ≥ 1 量化关系有 特征值的重数,称为 代数重数 ,等于Jordan矩阵中特征值为λ的Jordan块的阶数之和 特征向量的个数,称为 几何重数 ,等于Jordan矩阵中特征值为λ的Jordan块的个数 证明 先说结论 每个矩阵 等价 于一个

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包