aiaiask.com©

开花即结果 提问即答案

寻找和为目标值的最短连续子数组长度(Java实现)
原始问题:

寻找和为目标值的最短连续子数组长度(Java实现)

import java.util.HashMap;
import java.util.Map;

public class Solution {
    public int shortestSubarray(int[] nums, int target) {
        Map<Integer, Integer> map = new HashMap<>();
        int sum = 0;
        map.put(0, -1);
        int minLength = Integer.MAX_VALUE;
        int start = 0;
        for (int i = 0; i < nums.length; i++) {
            sum += nums[i];
            if (map.containsKey(sum - target)) {
                int length = i - map.get(sum - target);
                if (length < minLength) {
                    minLength = length;
                    start = map.get(sum - target) + 1;
                }
            }
            map.put(sum, i);
        }
        return minLength == Integer.MAX_VALUE ? 0 : minLength;
    }
}
寻找和为目标值的最短连续子数组长度(Java实现)
AI / 模型Siliconflow
时间 / DATESeptember 12, 2023, 4:26 PM
语言zh-CN
IP / 区域浙江 杭州