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

  • 输入:
    2 <= n <= 50
    pointsi.length == 2
    0 <= pointsi0, pointsi1 <= 50
    pointsi 点对两两不同。
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;
}
相关推荐
带多刺的玫瑰22 分钟前
Leecode#4刷题之寻找两个正序数组的中位数
java·前端·算法
土司大王31 分钟前
LeetCode hot100——除了自身以外数组的乘积
数据结构·算法·leetcode
IvanCodes33 分钟前
RAG 实战教程(三):向量数据库检索算法,KNN、IVF、HNSW 与 Faiss 实战
人工智能·算法·agent
阿无,1 小时前
布隆过滤器
java·算法·哈希算法
徒慕风流1 小时前
激光雷达回波信号滤波与时刻鉴别算法:原理、代码实现与仿真验证
python·算法·激光雷达
这料鬼有毒1 小时前
二刷hot100-70.爬楼梯
算法
caimouse1 小时前
ReactOS 图形系统分析(53):系统库存对象 — stockobj.c
c语言·开发语言·spring
CIO_Alliance2 小时前
AI算法系列(2)| 决策树与随机森林XGBoost:企业AI化转型中的树模型选型逻辑
大数据·人工智能·算法·决策树·系统集成·企业cio联盟·企业级ai化转型
ZC跨境爬虫2 小时前
LeetCode 13. 罗马数字转整数(多解法详解 + Java Python 实现)
java·python·leetcode
.道阻且长.2 小时前
10.LeetCode算法习题讲解--滑动窗口--最大连续为一的个数
算法·leetcode·职场和发展