美文网首页工作生活
Minimum Size Subarray Sum

Minimum Size Subarray Sum

作者: carlclone | 来源:发表于2019-07-01 13:51 被阅读0次

复盘

没有明确 循环终止条件和循环终止状态定义
需要走几个极端的测试用例

复盘:

对比bobo sir的定义:
初始l=0 , r=-1 , curMin=len +1
初始化的情况要特殊化 , 否则判断的代码要复杂许多
总之就是边界都要添加”哨兵” , 用于判断

画图 / 变量定义 , 区间定义 / 伪代码

图片

结果

func minSubArrayLen(s int, nums []int) int {
    if len(nums)==0 {
        return 0
    }
    l := 0
    r := 0
    curWs := nums[0]
    curWz := 1

    endIndex := len(nums) - 1
    arrLen := len(nums)

    curMinSize := arrLen

    //for r < endIndex ||( l <= r && l<endIndex)  {
        for  l!=endIndex || r!=endIndex   {
        if curWs >= s && l<endIndex {
            curMinSize = min(curMinSize, curWz)
            curWs -= nums[l]
            l++
            curWz--
            continue
        }
        if curWs < s && r<endIndex {
            r++
            curWz++
            //fmt.Println(r)
            curWs += nums[r]
            continue
        }
            if r==endIndex && curWs<s {
                break
            }
    }

    if r==endIndex && l==0 && curWs<s {
        return 0
    }
    return curMinSize



}

func min(i int, i2 int) int {
    if i > i2 {
        return i2
    }
    return i
}

bobo sir's solution


Leetcode 209. Minimum Size Subarray Sum 图片

相关文章

网友评论

    本文标题:Minimum Size Subarray Sum

    本文链接:https://www.haomeiwen.com/subject/tbsgcctx.html