个人技术分享

class Solution {
    public int[] dailyTemperatures(int[] temperatures) {
        int len = temperatures.length;
        int[] maxIndex = new int[len];
        maxIndex[len-1] = len-1;
        for(int i = len - 2;i >= 0;i--){
           maxIndex[i] = nearMax(temperatures,maxIndex,i);
        }

        for(int i = 0;i < len;i++)
            maxIndex[i] = maxIndex[i] - i;

        return maxIndex;
    }

    public int nearMax(int[] temperatures,int[] maxIndex,int i){
        int index = i+1;
        while(true){
            int temp = index;
            int num = temperatures[index];
            if(num > temperatures[i])
                return index;
            index = maxIndex[index];
            if(temp == index)
                break;
        }
        return i;
    }
}