• LeetCode#209-长度最小的子数组


    package shuangzhizhen;
    /*
    209. 长度最小的子数组
    给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。
    
    
    
    示例:
    
    输入:s = 7, nums = [2,3,1,2,4,3]
    输出:2
    解释:子数组 [4,3] 是该条件下的长度最小的子数组。
               解题思路:
                   双指针
     */
    public class p209 {
        public static int minSubArrayLen(int s, int[] nums) {
            if (nums.length == 1 && nums[0] < s) return 0;
            int ans = 0;
            for (int i = 0; i < nums.length; i++) {
                ans += nums[i];
            }
            if (ans < s) return 0;
            int len = nums.length;
            int left = 0, right = 0;
            int tmp = 0, res = len;
            while (right<len) {
                tmp += nums[right];
                //System.out.println("--------------");
                //此时窗口已经大于等于S了,此时移动left指针
                while (left <= right && tmp >= s) {
                    res = Math.min(res, right - left + 1);
                    tmp -= nums[left];
                    //System.out.println(nums[left]);
                    left++;
                }
                right++;
    
            }
            return res;
        }
    
        public static void main(String[] args) {
            int nums[]={2,3,1,2,4,3};
            System.out.println(minSubArrayLen(7,nums));
        }
    }
    

      运行结果:

  • 相关阅读:
    触发器
    变量
    Python 3.6 抓取微博m站数据
    Linux cp/rm/mv 强制覆盖
    Oracle的CLOB大数据字段类型
    4、NameNode启动过程详解
    2、HDFS交互式Shell
    1、HDFS 架构、启动过程
    11、 Hadoop 2.x各个服务组件如何配置在那台服务器运行并测试
    10、Hadoop组件启动方式和SSH无密码登陆
  • 原文地址:https://www.cnblogs.com/jifeng0902/p/13289194.html
Copyright © 2020-2023  润新知