• [GN] 车300笔试记



    前言

    没想到双非coder这次能在车300笔试中依靠算法储备给了我面试

    之前在有的笔试ak了,只会加快发感谢信的速度


    Hr甩给我一套压缩包链接,打开一看:

    1. 判断点是否在多边形内: 这不经典计算几何问题,太板了,还好不是在线纯手敲。
    2. 部署到linux: 刚好我有服务器,一行命令的事
    3. 远程debug: 刚好知道2023版IDEA远程开发使用

    牛客看看大家建不建议写,果然有人觉得麻烦不写。果然我能有面试是别人觉得麻烦不写了…

    一、判断点在多边形

    下面只给伪代码思路:
    提到了多边形。那就直接点、线、面三个基本类,然后重构方法即可

    //精度判断
    int sgn(double x){
       
    }
    //定义点
    struct Point{
     double x,y;
     Point(){}
     Point(double _x,double _y){ x = _x; y = _y; }
     //重构运算法法实现减法、点积、叉积...
     
     //例:
      bool operator < (Point b)const{
        return sgn(x-b.x)== 0?sgn(y-b.y)<0:x<b.x;
     }
        
         //返回两点的距离
     double distance(Point p){
      
     }
     
    }
    
    struct Line{
     Point s,e;
     Line(){}
     Line(Point _s,Point _e){
        s = _s;
        e = _e;
     }
     //也是叉积 点积的实现
    ...
    
     // 点在线段上的判断 叉积为 0,且点积小于等于 
     bool Pointtoseg(Point p){
        
     }
        
    }
    
    struct polygon{
     int n;
     Point p[maxp];
     Line l[maxp];
      
      //自定义cmp排序规则
      struct cmp{
     	
     };
     
     //进行极角排序
     //首先需要找到最左下角的点
     //需要重载号好 Point 的 < 操作符 (min 函数要用)
     void norm(){
     }
        
      // 将相邻点与点直接成线
     void getline(){
    
     }
     
     //核心方法:判断点在多边形哪里 ;采用射线法
     //奇数次相交,则在形内; 偶数次相交,则在形外
     // 3 点上
     // 2 边上
     // 1 内部
     // 0 外部
     int relationpoint(Point q){
     
      ...
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71

    1. 这里可以不用极角排序排序,官方给的测试用例已经排序好了。
    2. 点在多边形内判断,该多边形不一定是凸包

    二、部署

    nohup java -jar car_300.jar &
    
    • 1
  • 相关阅读:
    Elementor Pro 3.5 使用 Scroll Snap 和 Progress Tracker 改善用户体验
    大地坐标系到空间直角坐标系的转换推导
    PING命令中的-r参数的原理分析
    如何使用 GPU 访问运行 Docker Compose 容器
    refusing to merge unrelated histories
    docker 中安装 MySQL 以及使用
    蓝桥杯构造法|两道例题(C++)
    Linux - 进程管理
    达梦数据备份还原(物理逻辑)
    FastJson远程命令执行漏洞学习笔记
  • 原文地址:https://blog.csdn.net/qazwsxedcrfvrgb/article/details/138037725