小猴子摘桃子问题 -- JAVA 算法学习

本文探讨了一个关于小猴子下山摘桃子的问题,其中涉及到特定的摘桃规则。问题要求小猴子只能向下走,每棵树最多摘一个桃子,且不能摘结桃较少的树。在在线测试中,作者遇到正确率为0的困扰,尽管自我测试通过。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小猴子下山,沿着下山的路有一排桃树,每棵树都结了一些桃子。小猴子想摘桃子,但是有一些条件需要遵守,小猴子只能沿着下山的方向走,不能回头,每颗树最多摘一个,而且一旦摘了一棵树的桃子,就不能再摘比这棵树结的桃子少的树上的桃子。那么小猴子最多能摘到几颗桃子呢?

举例说明,比如有5棵树,分别结了10,4,5,12,8颗桃子,那么小猴子最多能摘3颗桃子,来自于结了4,5,8颗桃子的桃树。 

import java.util.Scanner;

public class Main{

	private static int getMax(int[] peaches) {
		// TODO Auto-generated method stub
		int len =peaches.length;
		if(len == 0||len ==1){
			return len;
		}
		int[] maxs = new int[len]; 
		int maxnum = 0;
		for(int i=len-1;i>=0;i--){
			int temnum=0;
			for(int j=i+1;j<len;j++){
				if(peaches[j]>=peaches[i]&&maxs[j]>=temnum){
					temnum= maxs[j];
				}
				if(temnum+1>maxnum){
					maxnum = temnum+1;
				}
			}
			maxs[i]=temnum+1;
		}
		return maxnum;
	}
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()){
			int n = sc.nextInt();
			int[] peaches = new int[n];
			for(int i=0;i<n;i++){
				peaches[i] = sc.nextInt();
			}
			System.out.println(getMax(peaches)+"");
		}
	}

}



在网上在线模拟测试的 提交了  但是显示正确率0.00%   55555555555~~~~~~(自己测试可以的啊)


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值