Count Hills and Valleys in an Array

给一组数字, 找山峰和山谷, 这里数字相同就认为是同在一个山峰or山谷. 求山峰山谷总数.

class Solution {
    public int countHillValley(int[] nums) {
        int res = 0;
        int n = nums.length; 
        LinkedList<Integer> list = new LinkedList<>();
        for(int nn : nums){
            if(!list.isEmpty() && list.getLast() == nn)
                continue;
            list.add(nn);
        }
        if(list.size() < 3)
            return 0;
        int[] ary = new int[list.size()];
        int j = 0;
        for(int nn : list)
            ary[j++] = nn;
        for(int i = 1; i < ary.length - 1; i++){ 
            if((ary[i - 1] < ary[i] && ary[i] > ary[i + 1]) || ary[i - 1] > ary[i] && ary[i] < ary[i + 1])
                res++; 
        }
        return res;
    }
}