java解洛谷P1003铺地毯问题


此题给出的最大地毯数量为10000,创建[10001][4]长度的二维数组

以稀松数组的方法,[第i个地毯]的 [0][1][2][3]分别保存地毯的坐标和大小

再用需要求的坐标比较即可

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //地毯数量
        int n = sc.nextInt();
        //地毯坐标及大小
        int a,b,g,k;
        //稀松数组储存地毯
        int[][] dt=new int[10001][4];

        for (int i = 0; i < n; i++) {
            a=sc.nextInt();
            b=sc.nextInt();
            g=sc.nextInt();
            k=sc.nextInt();
            dt[i][0]=a;
            dt[i][1]=b;
            dt[i][2]=g;
            dt[i][3]=k;
        }
        //求坐标最上层的地毯
        int x=sc.nextInt(),y=sc.nextInt();
        //遍历地毯
        int con=-1;
        for (int i = 0; i < n; i++) {
            if (x>=dt[i][0]&&x]){
                if (y>=dt[i][1]&&y]){
                    con=i+1;
                }
            }
        }
        System.out.println(con);
    }
}