|

楼主 |
发表于 2-3-2015 02:10 AM
|
显示全部楼层
Correct the bug found by kimi0428. Hope it works fine now.9 a: W# u: X2 G, g
) v U6 y/ K l4 t' R- int MaxRange1(const vector<int>& arr, int budget) {2 h- [5 u( r! P. L2 L" t
- int range = 0;
/ L& ^+ T) w& n' r8 w- I - int a, b;. b3 U: \! l) s2 Y3 ^9 R9 Z- W9 Z/ i
- a = b = 0;& W8 ~- y! a* V- v- m/ f$ U
- int sum = 0;: }5 v; y3 r+ ^0 ?+ [7 t
- int n = arr.size();
( J* w( _/ N4 B* @5 V - while (true) {
' T( ~5 ?& L. [# k" f - while (b<n && sum + arr[b] <= budget) {
& i; ~7 t2 m/ G- K, j% C, L4 l - sum += arr[b];/ Y! [/ x/ s P$ G# R4 {; c6 ~ J" U
- ++b;3 W) V8 f% E, |/ `! k2 O- \4 q
- }
, j5 [4 I, u2 ?- h. H$ I - range = std::max(range, b-a);
9 R4 A7 F/ G& x% a! h F/ a" q7 I- M - if (b<n) sum += arr[b];8 I) L8 ?/ r# { G
- else break;
! Q* ^! Q" W0 T/ u: b' W3 H: J- G+ }" i - while (a<n && sum > budget) {
( D% Z1 R: G( ?" V' h, X - sum -= arr[a];
9 W- g1 z5 ~- D, k( ` - ++a;" x8 ? A1 a. |* V; Z9 @3 X
- }
" A9 ]5 i6 o3 h# R/ e1 A - }/ e# Y# I/ | P i, W
- return range;
7 b" }% g" X4 t- P. r: Q - }
复制代码 |
|