0

我必须创建一个方法,该方法采用位于多维数组上的价格(一个值),并且它只需要返回一组坐标。问题是其他位置具有相同的值,因此它返回该位置的所有坐标,而不仅仅是第一个坐标。

 public static int availSeats(int a[][], int seatPrice){
    int seats=seatPrice;
    for(int row=0;row<rows;row++){
        for(int col=0;col<cols;col++){

            if(seats==a[row][col]){
                int priceRow=row;
                int priceCol=col;
            System.out.println("Seat: "+priceRow+","+priceCol);

            }
        }}

    return seats;
}
4

2 回答 2

0

您的代码必须只返回一个值,但它正在打印所有值。我假设返回值是正确的,并且是您实际期望的。所以避免混淆,在你的外循环上添加标签,当你遇到第一个满意的坐标时打破它。例如,更改您的代码如下:

        int seats=seatPrice;
        outerloop:
        for(int row=0;row<rows;row++){
            for(int col=0;col<cols;col++){

                if(seats==a[row][col]){
                    int priceRow=row;
                    int priceCol=col;
                System.out.println("Seat: "+priceRow+","+priceCol);
                break outerloop;
                }
            }}

        return seats;
于 2013-11-11T20:52:49.023 回答
0

我不确定目标,但我想 List 可能会有所帮助:

public static List<Coordinate> availSeats(int a[][], int seatPrice){
    List<Coordinate> coords= new ArrayList<Coordinate>();
    int seats=seatPrice;
    for(int row=0;row<rows;row++){
        for(int col=0;col<cols;col++){

            if(seats==a[row][col]){
                int priceRow=row;
                int priceCol=col;
                coords.add(new Coordinate(row, col));
                System.out.println("Seat: "+priceRow+","+priceCol);
        }
    }}

return coords;

}

其中Coordinate是一个简单的类,包含两个 int 字段:row 和 col。

于 2013-11-11T20:53:33.183 回答