渊子赛马 问题 java
2013-12-07 17:24
302 查看
渊子赛马题目
关于思路:
马数Num
1、渊子想要赢,必须有半数以上的马快过国王的马
2、对于输入的马的速度,我们先要进行按照速度从小到大的顺序排列好在数组中。
3、这样考虑,赛马速度已知排好顺序了,只要渊子的赛马从半数的前一个赛马开始与国王最慢的的赛马一一对应比赛,全赢的时候就赢了比赛
4、接下来对一共参加赛马的数量Num分为奇数和偶数两种情况分别讨论
具体看代码即可
上面是全面的实现
测试用例可以自己测试即可
源码我已经上传了,大家可以去下载
渊子赛马源码下载处
关于思路:
马数Num
1、渊子想要赢,必须有半数以上的马快过国王的马
2、对于输入的马的速度,我们先要进行按照速度从小到大的顺序排列好在数组中。
3、这样考虑,赛马速度已知排好顺序了,只要渊子的赛马从半数的前一个赛马开始与国王最慢的的赛马一一对应比赛,全赢的时候就赢了比赛
4、接下来对一共参加赛马的数量Num分为奇数和偶数两种情况分别讨论
具体看代码即可
/* 功能:判断yuanzi 的马是否会赢?yuanzi 的马赢了,返回 YES. 否则返回 NO 输入参数: int num: 赛马的数量; (1<= num <=1000) int[] speedYz: yuanzi 的马的速度; int[] speedOp: 对手的马的速度; 返回值: String型,yuanzi 的马赢了,返回 YES. 否则返回 NO; */ public class Demo { /* * 作者:cslience * 时间:2013/12/7 * 赛马开始 */ public String isYuanziWin(int num, int[] speedYz, int[] speedOp) { int count=0; sort(speedYz); sort(speedOp); /*比赛的马为偶数时候 * 只要渊子的赛马从Num/2-1号到最后都比国王的赛马从0开始到Num/2速度快就赢了 */ if(num%2==0){ for(int i=0;i<num/2+1;i++){ if(speedOp[i]<speedYz[i+num/2-1]){ count++;//渊子的马赢的次数 } } }else{//比赛的马为奇数时候同偶数基本相同只要保证半数以上的马获胜即可 for(int i=0;i<=num/2;i++){ if(speedOp[i]<speedYz[i+num/2]){ count++; } } } if(count>=num/2+1) return "YES"; else return "NO"; } /* * 按照马的速度从慢到快排序selectSort */ public void sort(int[] array){ int len=array.length; for(int i=0;i<len;i++){ for(int j=i;j<len;j++){ if(array[i]>array[j]){ swap(i,j,array); } } } } /* * 交换两匹马的位置 */ public void swap(int m,int n,int[] array){ int temp=array[m]; array[m]=array ; array =temp; } }
上面是全面的实现
测试用例可以自己测试即可
源码我已经上传了,大家可以去下载
渊子赛马源码下载处
相关文章推荐
- java实现渊子赛马算法
- java版的渊子赛马
- java正规表达式相关问题
- Java 利用 SWFUpload多文件上传 session 为空失效,不能验证的问题
- Java Web开发常问问题 重点概要
- 在Web应用中,会用到大量的Ajax请求,在Ajax请求中存在的一个问题就是如何判断session超时,在网上找到的一个java中处理此问题方法:
- Hanoi问题java实现
- java eclipse问题
- javac编译成功,用java运行class文件出现“找不到或无法加载主类” 的问题
- java中try{}catch{}和finally{}的执行顺序问题
- 40个Java多线程问题总结
- 关于R.java文件丢失问题
- 解决java.lang.RuntimeException: Unable to start activity Activity无法打开的问题
- java(Web)中相对路径,绝对路径问题
- Java程序员面试中的多线程问题
- java web,charset编码设置正确情况下出现部分中文正常,部分中文乱码的问题
- Java 泛型数组的问题
- java高级工程师面试问题集结号(three)
- java简单实现Http服务器,及遇到的问题
- java将byte[]转成文件的问题