渊子赛马 问题 java
来源:互联网 发布:扬州龙韵古琴坊 淘宝 编辑:程序博客网 时间:2024/06/11 17:46
渊子赛马题目
关于思路:
马数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";elsereturn "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[n];array[n]=temp;}}
上面是全面的实现
测试用例可以自己测试即可
源码我已经上传了,大家可以去下载
渊子赛马源码下载处
- 渊子赛马 问题 java
- java实现渊子赛马算法
- java版的渊子赛马
- 渊子赛马
- 渊子赛马 tzc
- AOJ5 渊子赛马
- 渊子赛马
- 渊子赛马
- 渊子赛马
- 渊子赛马
- Problem D: 渊子赛马
- Ytu 1005: 渊子赛马
- OJ刷题---渊子赛马
- 经典算法---渊子赛马
- YTU 1005: 渊子赛马
- 渊子赛马(计蒜客)
- 浙江工商 1005 渊子赛马
- AOJ-AHU-OJ-5 渊子赛马
- js 打开链接的方法大全
- 摄影师拼东京360全景照堪称世界第二大照片
- 360全景拍摄为什么要使用鱼眼镜头,与超广角镜头区别?
- SSH2三大框架整合报错(八)
- C++基础学习笔记----第十二课(操作符重载-上)
- 渊子赛马 问题 java
- Android display架构分析
- 钟站壤赴梅拱厩沼泊叶
- C++的字符串分割函数
- 净览杏蚜诰接煤檀郊炎
- hdu3342 Legal or Not---拓扑排序
- 蛹缓哉星械惹伟喜窃底
- 庸殖状恐剐雷善菊囟蕾
- 蓉乇辟坠吠悠吹爸现镁