18号贝壳笔试,第一题一开始想的各种数据结构,总是没有一个合适的存放数据,就用各种List Map嵌套放区间,结果太乱,GG;今天尝试重新写一下,突然想到可以用实体类存放数据,(当时脑子怎么就短路了呢!)
代码放出来
package BeiKe;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
public class Test01 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
List<QuJian> list=new ArrayList<QuJian>();
for(int i=1;i<=n;i++){
QuJian q=new QuJian();
q.setId(i);
q.setLeft(scan.nextInt());
q.setRight(scan.nextInt());
list.add(q);
}
int cnt=0;
List<Integer> list1=new ArrayList<Integer>();
Collections.sort(list, new QJComparator());
for(int i=0;i<list.size();i++){
for(int j=0;j<list.size();j++){
if(j!=i){
if(j+1==i&&j+2<list.size()){
QuJian q1=list.get(j);
QuJian q2=list.get(j+2);
if(q1.getRight()>q2.getLeft())
break;
else{
cnt++;
list1.add(list.get(i).getId());
}
}else if(j+1<list.size()){
QuJian q1=list.get(j);
QuJian q2=list.get(j+1);
if(q1.getRight()>q2.getLeft())
break;
else{
cnt++;
list1.add(list.get(i).getId());
}
}
}
}
}
System.out.println(cnt);
Collections.sort(list1);
System.out.println(list1);
}
}
class QJComparator implements Comparator<QuJian> {
public int compare(QuJian o1, QuJian o2) {
return o1.getLeft()-o2.getLeft();
}
}
class QuJian {
private int id;
private int left;
private int right;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getLeft() {
return left;
}
public void setLeft(int left) {
this.left = left;
}
public int getRight() {
return right;
}
public void setRight(int right) {
this.right = right;
}
@Override
public String toString() {
return "QuJian [id=" + id + ", left=" + left + ", right=" + right + "]";
}
}