leetcode-每日一题-3025. 人员站位的方案数 I-C语言

  • 输入:
    2 <= n <= 50
    points[i].length == 2
    0 <= points[i][0], points[i][1] <= 50
    points[i] 点对两两不同。
c 复制代码
// 按x降序,按y升序
int cmp(const void *a, const void *b) {
    int *p = *(int **)a;
    int *q = *(int **)b;
    if(p[0] == q[0]){
        return p[1]-q[1];
    } 
    else return q[0]-p[0];
}
// 判断c点是否在a为右下角,b为左上角的矩形和边界内
bool IsPad(int *pointa, int *pointb, int *pointc) {
    return !(pointc[0] > pointa[0] || pointc[0] < pointb[0] || pointc[1] < pointa[1] || pointc[1] > pointb[1]);
}
int numberOfPairs(int** points, int pointsSize, int* pointsColSize) {
    int res = 0;
    qsort(points, pointsSize, sizeof(int *), cmp);
    for(int i=0; i<pointsSize; i++) {
        for(int j=i+1; j<pointsSize; j++) {
            if(points[j][1] < points[i][1]){
                continue;
            }
            int k=i+1;
            while(k<j) {
                if(IsPad(points[i], points[j], points[k])) break;
                k++;
            }
            if(k == j) res++;
        }
    }
    return res;
}
相关推荐
Shining0596几秒前
推理引擎系列(七)《InfiniLM》
人工智能·深度学习·算法·大模型·ai芯片·智能体·推理引擎
C++ 老炮儿的技术栈3 分钟前
Qt 开发机器人客户端程序
c语言·开发语言·c++·windows·qt·机器人
不想看见4044 分钟前
Min Stack栈和队列--力扣101算法题解笔记
java·笔记·leetcode
马猴烧酒.4 分钟前
【面试八股|计算机网络】计算机网络常见面试题详解笔记
java·开发语言·网络·笔记·计算机网络·算法·面试
北顾笙9805 分钟前
测开准备-day04数据结构力扣
数据结构·算法·leetcode
千码君20166 分钟前
kotlin:函数式参数
java·算法·kotlin
2401_833197738 分钟前
现代C++多线程编程实战
开发语言·c++·算法
m0_587958959 分钟前
C++中的适配器模式实战
开发语言·c++·算法
sprite_雪碧15 分钟前
3.2 最大公约数(GCD)&斐波那契数列 & 素数相关(机试高频数学考点)
算法
2301_7765087217 分钟前
C++中的职责链模式实战
开发语言·c++·算法