当前位置:网站首页>LeetCode 1477. Find two subarrays with sum as the target value and no overlap
LeetCode 1477. Find two subarrays with sum as the target value and no overlap
2022-07-07 16:59:00 【@Little safflower】
Problem description
Give you an array of integers arr And an integer value target .
Please come in arr In looking for Two non overlapping subarrays And their sum is equal to target . There may be many options , Please return the sum of the length of the two sub arrays that meet the requirements minimum value .
Please return the minimum length and , If you can't find such two sub arrays , Please return -1 .
Example 1:
Input :arr = [3,2,2,4,3], target = 3
Output :2
explain : There are only two subarrays and 3 ([3] and [3]). Their length and are 2 .
Example 2:Input :arr = [7,3,4,7], target = 7
Output :2
explain : Even though we have 3 The sum of two non overlapping subarrays is 7 ([7], [3,4] and [7]), But we will choose the first and third sub arrays , Because of their length and 2 Is the minimum .
Example 3:Input :arr = [4,3,2,6,2,3,4], target = 6
Output :-1
explain : We have only one sum for 6 Subarray .
Example 4:Input :arr = [5,5,4,4,5], target = 3
Output :-1
explain : We can't find and for 3 Subarray .
Example 5:Input :arr = [3,1,1,1,5,1,2,1], target = 3
Output :3
explain : Notice the subarray [1,2] and [2,1] Can't be a solution because they overlap .
Tips :
1 <= arr.length <= 10^5
1 <= arr[i] <= 1000
1 <= target <= 10^8source : Power button (LeetCode)
link :https://leetcode.cn/problems/find-two-non-overlapping-sub-arrays-each-with-target-sum
Copyright belongs to the network . For commercial reprint, please contact the official authority , Non-commercial reprint please indicate the source .
Java
class Solution {
public int minSumOfLengths(int[] arr, int target) {
int n = arr.length;
int[] dp = new int[n];
// Minimum requirements , Fill with a larger number
Arrays.fill(dp,Integer.MAX_VALUE / 2);
int ans = Integer.MAX_VALUE;
// Double pointer
int left = 0;
int sum = 0;
for(int right = 0;right < n;right++){
sum += arr[right];
while(left <= right && sum > target){
sum -= arr[left++];
}
if(sum == target){
dp[right] = right - left + 1;
if(left != 0){
ans = Math.min(ans,dp[left - 1] + dp[right]);
}
}
if(right != 0){
dp[right] = Math.min(dp[right - 1],dp[right]);
}
}
return ans > n ? -1 : ans;
}
}边栏推荐
- Pycharm terminal enables virtual environment
- LeetCode 120. 三角形最小路径和 每日一题
- 【图像传感器】相关双采样CDS
- Introduction and use of gateway
- 谎牛计数(春季每日一题 53)
- LeetCode 1049. 最后一块石头的重量 II 每日一题
- Binary search tree (basic operation)
- LeetCode 213. Home raiding II daily question
- 整理几个重要的Android知识,高级Android开发面试题
- Prediction - Grey Prediction
猜你喜欢

The process of creating custom controls in QT to encapsulating them into toolbars (II): encapsulating custom controls into toolbars
3000 words speak through HTTP cache

Opencv configuration 2019vs

QT 图片背景色像素处理法

模块六

Record the migration process of a project

Binary search tree (basic operation)

QT picture background color pixel processing method

【DesignMode】代理模式(proxy pattern)
作为Android开发程序员,android高级面试
随机推荐
值得一看,面试考点与面试技巧
【PHP】PHP接口继承及接口多继承原理与实现方法
字节跳动Android面试,知识点总结+面试题解析
Binary search tree (features)
3000 words speak through HTTP cache
面向接口编程
Usage of config in laravel
Personal notes of graphics (4)
The difference and working principle between compiler and interpreter
dapp丨defi丨nft丨lp单双币流动性挖矿系统开发详细说明及源码
ATM system
LeetCode 1981. 最小化目标值与所选元素的差 每日一题
[designmode] template method pattern
网关Gateway的介绍与使用
Arduino 控制的双足机器人
Read PG in data warehouse in one article_ stat
LeetCode 1155. 掷骰子的N种方法 每日一题
Localstorage and sessionstorage
Cesium(3):ThirdParty/zip. js
LeetCode 1031. 两个非重叠子数组的最大和 每日一题