题解 | #牛的生长情况#

牛的生长情况

https://www.nowcoder.com/practice/5f67258999bd4e61a361f4d3017a3fd4

题目考察的知识点: 栈

题目解答方法的文字分析:

创建栈保存坐标
当当前值比数组顶部大时,取出值进行处理,处理后在添加到数组
最后对栈内坐标处理,赋值为-1

本题解析所用的编程语言:Java

完整且正确的编程代码

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param weights int整型一维数组
     * @return int整型一维数组
     */
    public int[] weightGrowth (int[] weights) {
        // write code here
        Stack<Integer> indexStack = new Stack<>();
        int[] res = new int[weights.length];
        res[weights.length - 1] = -1;
        int index;
        for (int i = 0; i < weights.length; i++) {
            while (!indexStack.isEmpty() && weights[i] > weights[indexStack.peek()]) {
                index = indexStack.pop();
                res[index] = i - index;
            }
            indexStack.add(i);
        }
        while (!indexStack.isEmpty()) {
            res[indexStack.pop()] = -1;
        }
        return res;
    }
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务