376. 스윙 시퀀스
엄격 양수와 음수 번갈아 연속적인 번호의 차이 경우, 시퀀스 넘버 시퀀스는 워블이라고 부른다. 첫 번째 차이점은 (만약 있다면) 양수 또는 음수 일 수있다. 시퀀스 미만 두 요소는 시퀀스 스윙.
차 (6, 3,5, -7,3)가 교대로 플러스, 마이너스이기 때문에, 예를 들어, [1,7,4,9,2,5]을, 워블의 서열이다. 이 두 번째 시퀀스의 처음 두 양성 간의 제 1 순서 차이 때문에 반대로 [1,4,7,2,5] 및 [1,7,4,5,5 같이, 시퀀스 스윙되지 이 마지막 차이 값이기 때문에 제로이다.
정수의 순서 감안할 때, 시퀀스로 시퀀스를 진동으로 최장의 길이를 반환합니다. 원래 순서 (삭제할 수 없습니다) 요소에서 어떤 시퀀스를 삭제하여 획득, 나머지 요소는 원래 순서를 유지합니다.
예 1 :
입력 : [1,7,4,9,2,5]
출력 : 6
명 : 전체 시퀀스의 시퀀스가 요동된다.
예 2 :
입력 : 1,17,5,10,13,15,10,5,16,8]
출력 : 7
설명 :이 [1,17,10이고이 서열 7 스윙 여러 시퀀스 길이를 포함 이 13,10,16,8].
예 3 :
입력 : [1,2,3,4,5,6,7,8,9]
출력 : 2
고급 :
당신은이 질문을 완료하는 데 O (n)의 시간 복잡도를 사용할 수 있습니까?
class Solution {
public int wiggleMaxLength(int[] nums) {
int n = nums.length;
if (n < 2) {
return n;
}
int up = 1;
int down = 1;
for (int i = 1; i < n; i++) {
if (nums[i] > nums[i - 1]) {
up = down + 1;
}
if (nums[i] < nums[i - 1]) {
down = up + 1;
}
}
return Math.max(up, down);
}
}