자바 구현 LeetCode 376 스윙 순서

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);
    }
}
출시 1490 원저 · 원 찬양 20000 + · 조회수 185 만 +

추천

출처blog.csdn.net/a1439775520/article/details/104799068