LC 209
(s int, a []int)
| 914 | |
| 915 | // LC 209 |
| 916 | func minSubArrayLen(s int, a []int) int { |
| 917 | min := func(a, b int) int { |
| 918 | if a < b { |
| 919 | return a |
| 920 | } |
| 921 | return b |
| 922 | } |
| 923 | n := len(a) |
| 924 | sum := make([]int, n+1) |
| 925 | for i, v := range a { |
| 926 | sum[i+1] = sum[i] + v |
| 927 | } |
| 928 | ans := n + 1 |
| 929 | for i := 1; i <= n; i++ { |
| 930 | l := sort.SearchInts(sum, sum[i]-s+1) |
| 931 | if l > 0 { |
| 932 | ans = min(ans, i-l+1) |
| 933 | } |
| 934 | } |
| 935 | if ans > n { |
| 936 | return 0 |
| 937 | } |
| 938 | return ans |
| 939 | } |
| 940 | |
| 941 | // LC 216 |
| 942 | func combinationSum3(k int, n int) (ans [][]int) { |