日期:2014-05-19  浏览次数:21312 次

java 求一组数组的波峰与波谷
比如一组数【4,5,1,1,4,3,3,3,3,5,5,6,4,4,3,2】求他的波形图的波峰与波谷;结果应该是5,1,4,3,6 各位大神看看

------解决方案--------------------
Java code

byte[] wave = new byte[]{4,5,1,1,4,3,3,3,3,5,5,6,4,4,3,2};
        int direction = wave[0] > 0? -1:1;
          for(int i=0;i<wave.length-1;i++) {
           if((wave[i+1]-wave[i])*direction>0) {
            direction*=-1;
            if(direction == 1) {
             System.out.println("("+i+","+wave[i]+")"+"波峰");
            } else {
             System.out.println("("+i+","+wave[i]+")"+"波谷");
            }
           }
          }

------解决方案--------------------
用数组,如果array[i+1]是波峰或波谷的话,array[i+1]-array[i] 与array[i+2]-array[i+1]异号
------解决方案--------------------
波峰比附近的值都大,波谷比附近的值都小。。。