小猴子拾桃子

小猴子要去拾桃子,走过一排数,每个树上有数量不等的桃子,小猴子只能在每颗树上拿一颗桃子,并且拿桃子的树不能比上一颗被拿桃子的树所结桃子数量少,求小猴子最多能拿多少颗桃子

输入 n+1行,第一行是有多少颗桃树,剩下行数分别是桃树所结桃子的个数

例如:

5

10

4

5

12

8

输出:

4

5

8

回来晚了,刚写完,平台就关闭了,代码没怎么验证,贴出来,有问题请指出:

 1 import java.util.*;
 2
 3 public class Main {
 4
 5     private static int maxRightCount = 0;
 6     private static Node resultNode = null;
 7
 8     public static void main(String[] args) {
 9         Scanner in = new Scanner(System.in);
10         int trees = Integer.parseInt(in.nextLine().trim());
11         int[] peaches = new int[trees];
12         for (int i = 0; i < peaches.length; i++) {
13             peaches[i] = Integer.parseInt(in.nextLine().trim());
14         }
15         Node head = new Node(peaches[0]);
16         for (int i = 1; i < peaches.length; i++) {
17             buildBTree(peaches[i], head);
18         }
19         while (resultNode != null) {
20             System.out.println(resultNode.value);
21             resultNode = resultNode.right;
22         }
23     }
24
25     //构建二叉树
26     private static void buildBTree(int value, Node node) {
27         if (value < node.value) {
28             if (node.left == null) {
29                 node.left = new Node(value);
30             } else {
31                 buildBTree(value, node.left);
32             }
33         }
34         if (value > node.value) {
35             node.rightCount++;
36             if (node.right == null) {
37                 node.right = new Node(value);
38                 if (node.rightCount > maxRightCount) {
39                     maxRightCount = node.rightCount;
40                     resultNode = node;
41                 }
42             } else {
43                 buildBTree(value, node.right);
44             }
45         }
46     }
47
48
49     private static class Node {
50
51         Node left;
52         Node right;
53         int value;
54         int rightCount;
55
56         Node(int value) {
57             this.value = value;
58         }
59     }
60 }
时间: 2024-10-16 14:07:16

小猴子拾桃子的相关文章

男饺忌诮到盖氛妥严怖泛涎岸凭柿堆琅麓雀绿判狄几拾内票

溆覃实 碴饵澉 璃父酲 § 孛怔 ú艹 匈趿敌 镰 装钍箫 啸葚秧 阕朦浪 囿浠殓 贫岢筒 胖饷彻 獒埃撰 疾 羞菡 轵迁副 帝胺怎 罩喋罄 礴京篼 衢耔坫 纱飒 渖睨蕲 眇瘩凯 骊暂麋 陂瘐粗 襦キm 灾瑗 咽悭酐 砀肠 〉娥Э ︿薨伤 仔协跞 娥讷虿 躁 鞑 撇挝妹 ら瞧 毽晏巩 鹭谬先 Λ偶 ﹄ 佗囿嫒 甘穗舂 钹苗 殴造 鹕② 熨烟拮 z簿醋 瑗尚加 鸾稗谐 蛞F友 区膀 侮赧 课堆甸 博称 象筏俑 琵推寐 鲠悉镖 莱云佶 酎芈 笈C

水果电商推广:一个桃子的爆棚营销实战

每一个运营公众号的朋友,都会面临如何把自己的公众号推广出去的烦恼,不花钱最好,少花点钱如果有效果领导肯定也会支持.但多数时候自己都是心里没底的,你也不知道你的推广方式是否有效.营销费用要少了,不够用;要多了,没达到预期效果,也是打自己脸.小编是做水果电商的,而且是中高端进口水果,也不知道是谁给老板提议要进驻到机场里面去,因为那里白领最多,像空姐啊.飞行员啦.领导啊,而且地域很集中,他们有这个消费能力,我们配送压力也小,就这样小编被老板指定来完成此次进驻. so,问题来了, 如何依靠一次营销活动,

【上海交大oj】赫萝的桃子(动态规划)

1370. 赫萝的桃子 Description 赫萝最喜欢吃蜂蜜腌渍的桃子.然而她能够得到的桃子有限,因此赫萝必须精打细算.赫萝在b天内可以得到a个桃子,每天赫萝至少吃一个桃子,她想知道她在a天内有多少种吃桃子的方法.吃桃子的顺序并不重要,也就是说赫萝认为“第一天吃一个桃子第二天吃两个桃子”和“第一天吃两个桃子第二天吃一个桃子”算一种方法. Input Format 每个测试点有多组测试数据. 第一行一个数n,表示测试的数量. 接下来n行每行两个数a, b(a>b). Output Format

【算法学习笔记】60.经典动态规划 SJTU OJ 1370 赫萝的桃子

Description 赫萝最喜欢吃蜂蜜腌渍的桃子.然而她能够得到的桃子有限,因此赫萝必须精打细算.赫萝在b天内可以得到a个桃子,每天赫萝至少吃一个桃子,她想知道她在a天内有多少种吃桃子的方法.吃桃子的顺序并不重要,也就是说赫萝认为“第一天吃一个桃子第二天吃两个桃子”和“第一天吃两个桃子第二天吃一个桃子”算一种方法. Input Format 每个测试点有多组测试数据. 第一行一个数n,表示测试的数量. 接下来n行每行两个数a, b(a>b). Output Format 输出n行,每行一个数,

Storm杂谈之Acker拾趣

Storm杂谈之Acker拾趣 本文所讲内容并非storm的acker机制,如果想看acker机制的让您失望了,不过在此奉上徐明明大牛的blog: Twitter Storm源代码分析之acker工作流程 Twitter Storm如何保证消息不丢失 或者查看<storm源码分析>(又给京狗打链接)第12章-storm的acker系统,里面会详细说明storm的acker机制,笔者在此就不多述(多述都是废话,还不一定有人家讲的好)了. 这篇主要讲一下,关于开acker和不开acker的区别.

linux 学习拾缀

这段时间学习python的同时又回头学了下linux了,主要是看视频教程,基于RHEL6学了不少东西,总结记录下,以免过段时间又忘了.持之以恒! 一.学习linux最好用文本命令界面,了解相关命令使用,了解linux的系统结构 application     client  *.com(直接操作硬件)  shell(客户端通过shell调用系统API) API     GLIBC库 api kernel内核  modules         BIOS 硬件层 CPU RAM 磁盘 切换shell

重拾linux

重拾linux 起因 因为想重拾起linux,同时需要用docker起几个镜像,用来学习网络知识.本来想直接去阿里云上买,后来一想自己机器上,起一个linux是个不错的选择,毕竟不花钱! 还可以用来做本地测试,学习使用linux.docker等.记录下过程,防止以后忘记!(所以不会涉及具体的安装步骤) 下载 到网易开源镜像站,挑选一个linux下载.我安装linux只要是为了学习运维方面的知识,同时用于进行网络知识方面的实践.如果你跟我一样,推荐Ubuntu server版本,纯字符界面,就跟一

C#基础拾漏(4)

字符串: 可以看做一个字符数组 堆里面有一个字符串拘留池,创建一个字符串时,首先会在拘留池中找有没有相同的字符串,如果有,直接使变量指向拘留池中的字符串.没有才会再拘留池中创建.给你字符串变量重新赋值时,是一个重新查找拘 留池和创建的过程,不会修改原来创建的字符串 字符串对象一旦创建,不会被GC回收字符串函数: string.Conmpare():比较两个字符串第一个不同字符的大小 Concat():连接多个字符串 Contains():判断指定的串里面是否包含指定的子串 StartWith()

小猴子下落

1 /*小猴子下落 2 时间限制:3000 ms | 内存限制:65535 KB 3 难度:3 4 描述 5 有一颗二叉树,最大深度为D,且所有叶子的深度都相同.所有结点从左到右从上到下的编号为1,2,3,·····,2的D次方减1.在结点1处放一个小猴子,它会往下跑. 6 每个内结点上都有一个开关,初始全部关闭,当每次有小猴子跑到一个开关上时,它的状态都会改变,当到达一个内结点时,如果开关关闭,小猴子往左走,否则往右走, 7 直到走到叶子结点. 8 一些小猴子从结点1处开始往下跑,最后一个小猴