奖金游戏 java

有十名员工,先输入十名员工的成绩,每名员工只能看到前后俩名员工的成绩,每人初始奖金1万,每名员工所获奖金必须比低于他成绩的前后员工的奖金高。最少需要多少钱。

 1 import java.util.ArrayList;
 2 import java.util.Collections;
 3 import java.util.Scanner;
 4
 5 class Test {
 6     // 奖金
 7     static ArrayList<node> ff(ArrayList<node> a1) {
 8         ArrayList<node> a=(ArrayList<node>)a1.clone();
 9         Collections.sort(a);
10         for (node n : a) {
11             if (n.right == null) {
12                 if (n.left != null) {
13                     if (n.left.num < n.num) {
14                         n.many = n.left.many + 1;
15                     } else if (n.left.num == n.num) {
16                         n.many = n.left.many;
17                     }
18                 }
19             } else {
20                 if (n.left != null) {
21                     if (n.num > n.left.num) {
22                         n.many = n.left.many + 1;
23                     }
24                     if (n.left.num == n.num) {
25                         n.many = n.left.many;
26                     }
27                     if (n.right.num == n.num) {
28                         n.many = n.right.many;
29                     }
30                     if (n.num > n.right.num) {
31                         n.many = n.right.many + 1;
32                     }
33                     if (n.num > n.left.num && n.num > n.right.num) {
34                         int m = (n.left.num > n.right.num) ? n.left.many
35                                 : n.right.many;
36                         n.many = m + 1;
37                     }
38                 } else {
39                     if (n.num > n.right.num) {
40                         n.many = n.right.many + 1;
41                     }
42                     if (n.right.num == n.num) {
43                         n.many = n.right.many;
44                     }
45                 }
46             }
47
48         }
49         return a;
50     }
51
52     public static void main(String[] args) {
53         Scanner in = new Scanner(System.in);
54         ArrayList<node> a = new ArrayList<node>();
55         node n1 = null;
56         while (in.hasNext()) {
57             int sum = 0;
58             node n0 = new node();
59             n0.num = in.nextInt();
60             in.nextLine();
61             if (n1 != null) {
62                 n0.left = n1;
63             }
64             n1 = n0;
65             a.add(n0);
66             if (a.size() >= 2) {
67                 a.get(a.size() - 2).right = n0;
68             }
69             for (node node : a) {
70                 node.many = 1;
71             }
72             ArrayList<node>a1 = ff(a);
73             for (node node : a1) {
74                 sum += node.many;
75             }
76             System.out.println(sum);
77         }
78     }
79 }
80
81 class node implements Comparable<node> {
82     int num = 0;
83     node left = null;
84     node right = null;
85     int many = 1;
86
87     @Override
88     public int compareTo(node o) {
89         // TODO Auto-generated method stub
90         if (this.num > o.num) {
91             return 1;
92         } else if (this.num == o.num) {
93             return 0;
94         }
95         return -1;
96     }
97 }
时间: 2024-10-12 18:17:24

奖金游戏 java的相关文章

俄罗斯方块游戏 --- java

俄罗斯方块游戏 如有疑问请查看:http://zh.wikipedia.org/zh-tw/%E4%BF%84%E7%BD%97%E6%96%AF%E6%96%B9%E5%9D%97 更多疑问请参考:http://java.itcast.cn/news/b4c1f433/34fd/4a7b/96bf/f1ae5e00ce70.shtml 游戏的运行结果如下: 代码的整体目录结构如下: 游戏发生的场地是在面板(panel)上,是JFrame框架把面板圈了起来 图形具有自己本身的特征,比如说形状,颜

求和游戏——java

1006. 求和游戏 Description 石柱上有一排石头键盘,每个键上有一个整数.请你在键盘上选择两个键,使这两个键及其之间的键上的数字和最大.如果这个最大的和不为正,则输出“Game Over". Input Format 第1行:键的个数n. 第2..n+1行:键上的数字整数 ai. −100≤ai≤100 对于70%的数据,2≤n≤1,000 对于100%的数据,2≤n≤1,000,000 Output Format 一行,最大和或者”Game Over". Sample

贪吃蛇小游戏java实现代码分析

贪吃蛇小游戏java实现代码分析 贪吃蛇的小游戏,网上的代码比较多,今天周五,在教研室没啥事做,在电脑中发现了一个贪吃蛇的小游戏,于是就看了下实现的源码,发现别人写的代码确实挺好的,自己也是边加注释边进行理解的去看别人实现的游戏源码,发现还是挺有意思的.自己花了一个下午的时间看了源码,也加了一点小小的功能,于是,不写篇博客觉得对不起自己也,哈哈哈. 此游戏代码的思路非常的清晰,也相当好理解,没有太多难的地方,不过有很多值得学习的地方,因为,这份源码中,对java.awt包中的很多类的很多方法都进

猜拳游戏 java基础

//用循环方式实现和计算机玩猜拳的程序 (设定胜出条件--输3次或赢3次即退出) package eduask01; import java.util.*; public class Rask03 { public static void main(String[]args){ Scanner sc=new Scanner(System.in); int m=0,n=0;//累计输或赢的次数 for(;;){//死循环进行游戏 System.out.println("猜拳游戏:1.表示石头 2.

生命游戏 Java

本程序由四个类组成: 其中Init_data,用于初始化各个活细胞的状态judge_state,用于判断下一代的细胞状态,并进行更新.set_color,用于给GUI界面中各个细胞涂色set_frame,用于设置GUI界面的布局 1 /*初始化细胞状态类 2 * 四个模式 3 * 1.easy模式,一个大写的I 4 * 2.love模式,一个大写的LOVE 5 * 3.arrow模式,一个粗箭头 6 * 4.random模式,根据随机函数生成活细胞数 7 */ 8 package game_li

猜字游戏java

一.实践目的 1.掌握基本输入输出. 2.掌握方法定义与调用,理解参数传递方式. 3.掌握数组的声明.定义与初始化,数组的处理. 4.掌握数组作为方法参数和返回值. 二.实践要求 利用方法.数组.基本输入输出等Java基础知识,给出所选项目的基本设计与实现. 三.项目需求 所选项目名称:猜字游戏 项目需求描述,主要指应实现的主要功能.如:制作一个猜字小程序,又根据实践一:基础程序设计实践实践目的,只要作出相应的功能,实现相应的输入输出即可,窗口以及共多功能可以在后期完善! https://git

21点游戏java实现

21点的基本知识 21点是世界上比较流行的扑克游戏项目 除掉大小王的一副扑克牌,共计52张牌 21点不区分花色,其中A----10均代表扑克牌本身的点数J Q K代表10点 区分庄家和闲家,其中闲家可以优先要牌 而庄家在与闲家点数一样大的情况下,庄家赢,当有一方点数超过21点则另一方自动获胜,庄家的点数如果正好是21点,那么庄家直接获胜,其他情况以点数大的获胜 流程设计: 人机对战模式! 1由用户输入选择作庄还是作闲,电脑自动成为另一方 2随机为双方发两张牌 3询问闲家是否要牌,一直到闲家不再要

2019 乐逗游戏java面试笔试题 (含面试题解析)

本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.乐逗游戏等公司offer,岗位是Java后端开发,最终选择去了乐逗游戏. 面试了很多家公司,感觉大部分公司考察的点都差不多,所以将自己的心得记下来,希望能给正在找或者准备找工作的朋友提供一点帮助.另外,目前在乐逗游戏也做面试官的工作,身份从求职者变为面试官,看问题的很多角度也不一样,所以下文中既有求职者的视角,也有面试官的视角 面试流程 ??先说下面试流程,一般大公司都有3-4轮技术面,1轮的HR面.就乐逗游戏

“接竹竿”纸牌游戏 java实现运算结果

1 import java.util.Scanner; 2 3 public class Pukepai{ 4 int[] a=new int[1000]; 5 int[] b=new int[1000]; 6 int aleft,aright,bleft,bright; 7 int[] s=new int[100]; 8 int[] t=new int[9]; 9 int top; 10 int flag; 11 12 public static void main(String[] args