有一批订单记录,数据有订单号,入店时间,离店时间; 输入一个时间值A,须要在这批记录中找到符合入离店时间范围(A大于等于入店时间,而且A小于等于离店时间)内的全部记录。 单次查询时间复杂度控制在O(l

import java.util.Scanner;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
public class Main{
    public static void main(String[] args)throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int timeA = Integer.parseInt(br.readLine());
        //int count = 0;
        ArrayList<Integer> list = new ArrayList<>();
        for(int i = 0;i < n;i++){
            String[] str = br.readLine().split(" ");
            int orderid = Integer.parseInt(str[0]);
            int intime = Integer.parseInt(str[1]);
            int outtime = Integer.parseInt(str[2]);
            if(timeA >= intime && timeA <= outtime){
                list.add(orderid);
            }
        }
        if(list.isEmpty())
            System.out.println("null");
        else{
            Collections.sort(list);
            for(Object obj:list)
                System.out.println(obj);
        }
         
    }
}
相关文章
相关标签/搜索