题解 | #牛群的可视高度#

牛群的可视高度

https://www.nowcoder.com/practice/942d0585a5654dbb9d5000feaa4e177e?tpId=354&tqId=10588389&ru=/exam/oj&qru=/ta/interview-202-top/question-ranking&sourceUrl=%2Fexam%2Foj

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param cowHeights int整型一维数组
     * @return int整型
     */
   public int visibleCows (int[] cowHeights) {
        int [] tempMax = new int[cowHeights.length];
        int max = cowHeights[0];
        tempMax[0] = max;
        int count = 0;
        for (int i = 1; i < cowHeights.length; i++) {
            if(cowHeights[i]>max){
                max = cowHeights[i];
            }
            tempMax[i] = max;
        }
        for (int i = 1; i < cowHeights.length; i++) {
            if(tempMax[i]<=cowHeights[i]&&tempMax[i]!=tempMax[i-1]){
                count++;
            }
        }
        return count+1;
    }
}

本题知识点分析:

1.数组遍历

2.贪心算法

3.数学模拟

本题解题思路分析:

1.第一个遍历获取每一个索引时刻的最大值

2.第二个遍历,如果当前索引时刻最大值小于等于当前值并且索引时刻最大值不产生第二次连续count++

3.返回count+1,因为i=1开始

4.最后发现貌似一次遍历就可以了,边更新Max,边用if判断不就好了.......

本题使用编程语言: Java

全部评论

相关推荐

2025-12-22 16:31
已编辑
桂林电子科技大学 Python
很奥的前端仔:如果你接了offer 临时又说不去 hr确实要多做一些工作。 当然如果是接offer之前当我没说
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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