[头条笔试]坐标的题目怎么做?

本地测试通过,但是赛码网是0%,然后就较劲了,觉得不可能,甚至还用赛码网的其他在线编程题做测试,输入题目条件中的样例,也可以得到题目中的样例输出,真心求解,哭😢

import java.util.*;
public class Main {
    class Point{
        private int x;
        private int y;
        public int getX(){
            return x;
        }
        public int getY(){
            return y;
        }
        public Point(int x, int y){
            this.x = x;
            this.y = y;
        }
    }
    public void process(){
        Scanner scanner=new Scanner(System.in);
        List points = new ArrayList();
        while(scanner.hasNextLine()){
            int total = scanner.nextInt();

            for(int i = 0; i< total; i++){
                String[] pointstr = scanner.nextLine().split(" ");
                int x = Integer.parseInt(pointstr[0]);
                int y = Integer.parseInt(pointstr[1]);
                points.add(new Point(x,y));
            }
            List resultPoints = new ArrayList();
            for(int j = 0; j<points.size(); j++){
                Point currentPoint = points.get(j);
                Boolean flag = true;
                for(int k = 0; k<points.size(); k++){
                    if(points.get(k).getX() > currentPoint.getX() && points.get(k).getY() > currentPoint.getY()){
                        flag = false;
                        break;
                    }
                }
                if(flag) {resultPoints.add(currentPoint);}
            }
            Collections.sort(resultPoints, new Comparator(){
                public int compare(Point o1, Point o2) {
                    return Integer.compare(o1.getX(), o2.getX());
                }
            });
            for(int m = 0; m<resultPoints.size(); m++){
                System.out.print(resultPoints.get(m).getX());
                System.out.print(" ");
                System.out.print(resultPoints.get(m).getY());
                System.out.println("");
            }
        }
    }
    public static void main(String[] args) {
      Main m = new Main();
      m.process();    
    }
}
#字节跳动#
全部评论
排个序,x从小到大,从后往前推,记录一个最小的y坐标,只要当前点的y坐标大于这个最小值,则此点就加入集合,并将最小值更新为这个y坐标,100%
点赞 回复 分享
发布于 2017-08-22 21:25
我是先把坐标按x排序,相同x y大的在后面 对于每个点,从后往前 如果能找到一个y比他大的那么这个点就不是“最大点” 只过了50%
点赞 回复 分享
发布于 2017-08-22 21:09
按x从大到小排序然后维护一个最高点, 看当前点y坐标是否大于最高点,大于就更新最高点坐标然后答案加一。我没做猜的(
点赞 回复 分享
发布于 2017-08-22 21:10
我就是写的两个for循环😂判断数组的其它项的x y坐标是否都大于当前坐标 然后输出然而20%哈哈哈 gg
点赞 回复 分享
发布于 2017-08-22 21:09
你最后多换了一行
点赞 回复 分享
发布于 2017-08-22 21:09
应该是数据量大的问题,我只能过 50%,数据量再大,得换方法了。
点赞 回复 分享
发布于 2017-08-22 21:10
过了50%。。。。
点赞 回复 分享
发布于 2017-08-22 21:10
暴力50%
点赞 回复 分享
发布于 2017-08-22 21:11
50%
点赞 回复 分享
发布于 2017-08-22 21:13
50%(ಥ_ಥ)
点赞 回复 分享
发布于 2017-08-22 21:13
50   前两道都是暴力   结果只能对一半 第二道还60
点赞 回复 分享
发布于 2017-08-22 21:14
#说内存超。。。。了70% import sys a = int(raw_input("")) list_ = [] for i in range(a): list_.append(map(lambda x:int(x),sys.stdin.readline().strip().split(" "))) list_.sort() find = [] max_y = 0 for i in range(len(list_)-1,-1,-1): max_ = list_[i][1] if max_ >= max_y: max_y = max_ find.append(list_[i]) for i in sorted(find): print " ".join(map(str,i))
点赞 回复 分享
发布于 2017-08-22 21:19
和你的代码几乎一摸一样,10。。。
点赞 回复 分享
发布于 2017-08-22 21:20
我这个本地过了,赛码网上还是0%,说输出超限 #include<iostream> #include<vector> #include<algorithm> using namespace std; int main(){ int n;     while(cin>>n){     vector<vector<int>> data(n,vector<int>(2));         for(int i=0;i<n;i++){             int x,y;             cin>>x>>y;             data[i][0]=x;             data[i][1]=y;         }         for(int i=0;i<data.size();i++){         for(int j=i+1;j<data.size();j++){             if(data[j][0]>data[i][0]&&data[j][1]>data[i][1])                     data.erase(data.begin()+i);             }         }         sort(data.begin(),data.end());         for(int i=0;i<data.size();i++){         cout<<data[i][0]<<" "<<data[i][1]<<endl;         }     } }
点赞 回复 分享
发布于 2017-08-22 21:20
我用cin是50%改成scanf就过了...
点赞 回复 分享
发布于 2017-08-22 21:26
同学你好!首先感谢你参加今日头条笔试,如果在笔试过程中遇到任何问题,可以通过申诉通道与我们联系。情况核对属实后,可以有二次笔试的机会,成绩以最后一次考试为准。【申诉通道】campushr@bytedance.com,请在正文简要说明笔试遇到的问题,邮件标题为: 笔试申诉+岗位+姓名+***话,我们会尽快回复~
点赞 回复 分享
发布于 2017-08-22 21:32

相关推荐

点赞 评论 收藏
分享
10-07 20:48
门头沟学院 Java
听说改名就会有offer:可能是实习上着班想到后面还要回学校给导师做牛马,看着身边都是21-25的年纪,突然emo了了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务