@@ -198,7 +198,7 @@ JavaScript:
198198var minSubArrayLen = function (target , nums ) {
199199 // 长度计算一次
200200 const len = nums .length ;
201- let l = r = sum = 0 ,
201+ let l = r = sum = 0 ,
202202 res = len + 1 ; // 子数组最大不会超过自身
203203 while (r < len) {
204204 sum += nums[r++ ];
@@ -260,12 +260,12 @@ Rust:
260260
261261``` rust
262262impl Solution {
263- pub fn min_sub_array_len (target : i32 , nums : Vec <i32 >) -> i32 {
263+ pub fn min_sub_array_len (target : i32 , nums : Vec <i32 >) -> i32 {
264264 let (mut result , mut subLength): (i32 , i32 ) = (i32 :: MAX , 0 );
265265 let (mut sum , mut i ) = (0 , 0 );
266-
266+
267267 for (pos , val ) in nums . iter (). enumerate () {
268- sum += val ;
268+ sum += val ;
269269 while sum >= target {
270270 subLength = (pos - i + 1 ) as i32 ;
271271 if result > subLength {
@@ -364,7 +364,7 @@ int minSubArrayLen(int target, int* nums, int numsSize){
364364 int minLength = INT_MAX;
365365 int sum = 0;
366366
367- int left = 0, right = 0;
367+ int left = 0, right = 0;
368368 //右边界向右扩展
369369 for(; right < numsSize; ++right) {
370370 sum += nums[right];
@@ -380,5 +380,26 @@ int minSubArrayLen(int target, int* nums, int numsSize){
380380}
381381```
382382
383+ Kotlin:
384+ ``` kotlin
385+ class Solution {
386+ fun minSubArrayLen (target : Int , nums : IntArray ): Int {
387+ var start = 0
388+ var end = 0
389+ var ret = Int .MAX_VALUE
390+ var count = 0
391+ while (end < nums.size) {
392+ count + = nums[end]
393+ while (count >= target) {
394+ ret = if (ret > (end - start + 1 )) end - start + 1 else ret
395+ count - = nums[start++ ]
396+ }
397+ end++
398+ }
399+ return if (ret == Int .MAX_VALUE ) 0 else ret
400+ }
401+ }
402+ ```
403+
383404-----------------------
384405<div align =" center " ><img src =https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width =500 > </img ></div >
0 commit comments