题解 | #小猪摘水果# java

小猪摘水果

https://www.nowcoder.com/practice/fdb76b9170dc4e689a7eceee97159d96

import java.util.*;


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

该代码使用的编程语言是Java

该题考察的知识点是动态规划和数组操作。给定一个整型数组 fruit,表示水果树上每棵树上的水果数量。现在要选择两棵树,使得这两棵树上的水果总数最多。其中,第一棵树上的水果数量为 10,可以认为是固定值。需要返回两棵树上的水果总数的最大值。

代码中的解决思路是先从索引位置 1 开始,将每个索引位置上的元素值加上前一个索引位置上的元素值,即 fruit[i] += fruit[i - 1]。这样,数组 fruit 中存储的便是从开头到当前位置的水果总数。然后通过遍历数组找到水果总数的最大值,并返回该最大值作为结果。

代码的文字解释如下:

  1. 定义一个函数 mostFruitTree,接收一个整型数组 fruit 和数组长度 fruitLen 作为参数。
  2. 将数组第一个元素的值加上 10,即 fruit[0] = 10 + fruit[0]
  3. 使用循环遍历数组,从索引位置 1 开始,将每个索引位置上的元素值加上前一个索引位置上的元素值,即 fruit[i] += fruit[i - 1]
  4. 初始化一个变量 max 并赋值为 10,用于存储最大的水果总数。
  5. 再次使用循环遍历数组,依次检查每个索引位置上的元素值。如果当前元素值大于 max,则更新 max 的值为当前元素值。
  6. 返回变量 max 作为结果,表示两棵树上的水果总数的最大值。
全部评论

相关推荐

07-03 16:02
门头沟学院 Java
点赞 评论 收藏
分享
水墨不写bug:疑似没有上过大学
点赞 评论 收藏
分享
机械打工仔:我来告诉你原因,是因为sobb有在线简历,有些HR为了快会直接先看在线简历,初步感觉不合适就不会找你要详细的了
投了多少份简历才上岸
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 12:23
转人工😡
门口唉提是地铁杀:五次握手了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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