360笔试第一题----最强的不一定是最后的赢家
生活随笔
收集整理的這篇文章主要介紹了
360笔试第一题----最强的不一定是最后的赢家
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
某賽事有n名選手參加,但是不同于其他的比賽,本比賽采取的是擂臺賽的形式,n名選手排成一排,每次隊伍的第一位和第二位選手進行比賽,輸的一方會排到隊尾。當某位選手取得m連勝時,他將成為最后的贏家,且游戲結束,請問截止到游戲結束,共會進行多少次比賽。兩位選手的比賽結果由他們的戰斗力決定,n位選手的戰斗力是一個1~n的排列,也就是說他們的戰斗力兩兩不同,不會有平局的情況。
?
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();int temp = m; //存儲比較次數,若m>n也只需要最多比較n次,if(m>n) temp = n;Queue<Integer> q = new LinkedList<>();for(int i=0;i<n;i++) q.add(sc.nextInt());int y =0; //存儲較大的值int cnt = 0; //連勝次數int count = 0; //總比較次數int h =q.poll(); //存儲第一個結點while(cnt<temp) {y = q.peek();if(h>y) {cnt++;q.poll();q.add(y);}else {q.poll();q.add(h);h=y;cnt=1;}count++;}if(m>n) System.out.println(count+m-n);else System.out.println(count);} }?
總結
以上是生活随笔為你收集整理的360笔试第一题----最强的不一定是最后的赢家的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 奖金福利高达20亿,华为太太太太太任性了
- 下一篇: redis相关知识记录整理