投篮游戏实现

来源:互联网 发布:mac和vb虚拟机如何共享 编辑:程序博客网 时间:2024/06/02 20:23

这里写图片描述
样例输出:4
题目如上所示,解题思路是:构造一个篮筐数组和一个与篮筐数组一样大小的标志位数组,标识该对应的篮筐是否已经有球。有球,则返回此时篮筐编号,结束游戏;或者,重复进行投尽所有篮球,返回-1,游戏结束。

import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        while(sc.hasNextInt()){        int p = sc.nextInt();        int n = sc.nextInt();        long[] array = new long[n];        for(int i= 0;i<n;i++){            array[i] = sc.nextLong();        }        System.out.println(touLan(p,n,array));        }    }    public static int touLan(int p, int n, long[] array){        if(p<2 || p>300 || n<2 || n>300){            return -1;        }        int[] basket = new int[p];        long[] x = array;        boolean[] flag = new boolean[p];        for (int i = 0; i < n; i++) {            flag[i] = false;        }        for (int i = 0; i < n; i++) {            if (!flag[(int) (x[i] % p)]) {                basket[i] = (int) (x[i] % p);                flag[basket[i]] = true;            } else {                return i + 1;            }        }        return -1;    }}

上述代码,本机测试,可以实现题意所需,但在赛码网上提交测试时只能通过40%测试用例,希望大家能指出不足之处。

0 0
原创粉丝点击