1 #DEFINE _for은 (ⅰ, A는 B)에 대한 (; 나는 B <I ++가 나는 = (a) INT) 2 타입 정의 긴 긴 LL; (3) 사용 스페이스 성병; 4 개 5 클래스 해결 6 { 7 공개 : 8 INT movesToMakeZigzag (벡터 < INT > & nums) 9 { 10 INT rnt1 = 0 ; 11 의 INT rnt2 = 0 ; 12 13 _for (I, 1 , nums.size ()) 14 { 15 일 경우 (I 및 0x1로 ) 16 { 17 일 경우 (I nums.size == () - 1 ) 18 { 19 일 경우 (nums [I]> = nums [I- 1 ]) 20 { 21 rnt1 + = nums [I - (nums [I- 1 ] - 1 ); 22 } 23 } 24 또 25 { 26 일 경우 (nums [I]> = nums [Ⅰ- 1] || nums [I]가> = nums [내가 + 1 ]) 27 { 28 rnt1가 + = nums [내가] - (분 (nums [I- 1 ] nums [I + 1 ]) - 1 ); 29 } 30 } 31 } 32 33 } 34 _for (I, 0 , nums.size ()) 35 { 36 (37) 의 경우 ((I 및 0x1로 ) == 0 ) 38 { 39 의 경우 (I ==0 ) 40 { 41 의 경우 (nums [I]가> = nums [내가 + 1 ]) 42 { 43 rnt2가 + = nums [I] - (nums [I + 1 ] - 1 ); 44 } 45 } (46) 그 밖의 경우 (I nums.size == () - 1 ) 47 { 48 의 경우 (nums [I]가> = nums [I- 1 ]) 49 { 50 rnt2가 + = nums [내가] - (nums [나는-(1) ] - 1 ); 51 } 52 } 53 또 54 { 55 의 경우 (nums [I]> = nums [I- 1 ] || nums [I]는> = nums [난 + 1 ]) 56 { 57 + = nums rnt2 [I]는 - (최소 (nums [I- 1 ] nums [I + 1 ]) - 1 ); 58 } 59 } 60 } 61 // COUT << rnt2 << ENDL; (62) } 63 // COUT << rnt1 << ''<< rnt2 << ENDL; 64 리턴 분 (rnt1, rnt2); 65 } 66 };