题解 | #牛群的可视高度# java
牛群的可视高度
https://www.nowcoder.com/practice/942d0585a5654dbb9d5000feaa4e177e
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param cowHeights int整型一维数组 * @return int整型 */ public int visibleCows (int[] cowHeights) { // write code here int visibleCount = 0; // 可见牛的数量 int maxHeight = 0; // 当前可见牛的最大高度 for (int height : cowHeights) { if (height > maxHeight) { visibleCount++; maxHeight = height; } } return visibleCount; } }
Java 编程语言编写
该题考察的知识点包括:
- 数组遍历
- 贪心算法
代码的文字解释:使用 visibleCount
变量来记录可以看到的牛的数量,以及 maxHeight
变量来记录当前可见牛的最大高度。
通过遍历 cowHeights
数组,对于每头牛的高度,如果当前牛的高度大于 maxHeight
,说明这头牛可以被看到,我们将 visibleCount
增加1,并更新 maxHeight
为当前牛的高度。因为只有比之前的牛更高的牛能够被看到,所以我们只需要关注高度递增的牛,最后返回 visibleCount
,即为从左到右能看到的牛的数量。