Skip to content

Commit

Permalink
min-sub-array
Browse files Browse the repository at this point in the history
  • Loading branch information
nt-sivan committed May 21, 2024
1 parent 1056228 commit 1a27734
Show file tree
Hide file tree
Showing 6 changed files with 58 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,5 @@
- [2024-05-18 是否存在重复元素距离小于等于k](./check-duplicate-II)
- [2024-05-19 两个有序数组的中位数](./median-of-two-sorted-arrays)
- [2024-05-20 把0移到末尾](./move-zeros)
- [2024-05-21 满足target最小子数组长度](./min-sub-array-len)

7 changes: 7 additions & 0 deletions min-sub-array-len/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions min-sub-array-len/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[package]
name = "min-sub-array-len"
version = "0.1.0"
edition = "2021"

[dependencies]
14 changes: 14 additions & 0 deletions min-sub-array-len/src/main.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
mod solution;
use crate::solution::Solution;
fn main() {
println!("Hello, world!{:?}", Solution::min_sub_array_len(7, vec![2,3,1,2,4,3]));

println!("Hello, world!{:?}", Solution::min_sub_array_len(4, vec![1,4, 4]));

println!("Hello, world!{:?}", Solution::min_sub_array_len(11, vec![1,1, 1, 1,1,1]));

println!("Hello, world!{:?}", Solution::min_sub_array_len(11, vec![1,2,3, 4, 5]));


println!("{:?}", Solution::min_sub_array_len(697439, vec![5334,6299,4199,9663,8945,3566,9509,3124,6026,6250,7475,5420,9201,9501,38,5897,4411,6638,9845,161,9563,8854,3731,5564,5331,4294,3275,1972,1521,2377,3701,6462,6778,187,9778,758,550,7510,6225,8691,3666,4622,9722,8011,7247,575,5431,4777,4032,8682,5888,8047,3562,9462,6501,7855,505,4675,6973,493,1374,3227,1244,7364,2298,3244,8627,5102,6375,8653,1820,3857,7195,7830,4461,7821,5037,2918,4279,2791,1500,9858,6915,5156,970,1471,5296,1688,578,7266,4182,1430,4985,5730,7941,3880,607,8776,1348,2974,1094,6733,5177,4975,5421,8190,8255,9112,8651,2797,335,8677,3754,893,1818,8479,5875,1695,8295,7993,7037,8546,7906,4102,7279,1407,2462,4425,2148,2925,3903,5447,5893,3534,3663,8307,8679,8474,1202,3474,2961,1149,7451,4279,7875,5692,6186,8109,7763,7798,2250,2969,7974,9781,7741,4914,5446,1861,8914,2544,5683,8952,6745,4870,1848,7887,6448,7873,128,3281,794,1965,7036,8094,1211,9450,6981,4244,2418,8610,8681,2402,2904,7712,3252,5029,3004,5526,6965,8866,2764,600,631,9075,2631,3411,2737,2328,652,494,6556,9391,4517,8934,8892,4561,9331,1386,4636,9627,5435,9272,110,413,9706,5470,5008,1706,7045,9648,7505,6968,7509,3120,7869,6776,6434,7994,5441,288,492,1617,3274,7019,5575,6664,6056,7069,1996,9581,3103,9266,2554,7471,4251,4320,4749,649,2617,3018,4332,415,2243,1924,69,5902,3602,2925,6542,345,4657,9034,8977,6799,8397,1187,3678,4921,6518,851,6941,6920,259,4503,2637,7438,3893,5042,8552,6661,5043,9555,9095,4123,142,1446,8047,6234,1199,8848,5656,1910,3430,2843,8043,9156,7838,2332,9634,2410,2958,3431,4270,1420,4227,7712,6648,1607,1575,3741,1493,7770,3018,5398,6215,8601,6244,7551,2587,2254,3607,1147,5184,9173,8680,8610,1597,1763,7914,3441,7006,1318,7044,7267,8206,9684,4814,9748,4497,2239]));
}
29 changes: 29 additions & 0 deletions min-sub-array-len/src/solution.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
use std::cmp::min;

pub struct Solution;

impl Solution {
pub fn min_sub_array_len(target: i32, nums: Vec<i32>) -> i32 {
let mut min_len = nums.len() + 1;
let mut sum = 0;
let mut start = 0;

for end in 0..nums.len() {
sum += nums[end];

while sum >= target {
min_len = min_len.min(end - start + 1);
// 总数减去开始的,然后开始位置+1
sum -= nums[start];
start += 1;
}
}

// 如果是最大数,则等于0
if min_len == nums.len()+1 {
0
} else {
min_len as i32
}
}
}
1 change: 1 addition & 0 deletions min-sub-array-len/title.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2024-05-21 满足target最小子数组长度

0 comments on commit 1a27734

Please sign in to comment.