408算法题leetcode--第21天

74. 搜索二维矩阵

cpp 复制代码
class Solution {
public:

    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        // 把矩阵转换为一维数组
        // 一维id > 二维id / n, id % n
        int m = matrix.size(), n = matrix[0].size();
        int size = m * n;
        int l = 0, r = size;  // 左闭右开
        while(l < r){
            int mid = l + (r - l) / 2;
            int x = matrix[mid / n][mid % n];
            if(x >= target){
                r = mid;
            } else {
                l = mid + 1;
            }
        }
        if(l >= size) return false;
        return matrix[l / n][l % n] == target;
    }
};

997. 找到小镇的法官

cpp 复制代码
class Solution {
public:
    int findJudge(int n, vector<vector<int>>& trust) {
        // 找入度为n-1,且出度为0的点
        vector<int>in(n+1, 0), out(n+1, 0);
        for(auto it : trust){
            int p = it[0], q = it[1];  // p > q
            out[p]++, in[q]++;
        }
        // 遍历in和out
        int ret = 0;
        for(int i = 1; i <= n; i++){
            if(in[i] == n - 1 && out[i] == 0){
                return i;
            }
        }
        return -1;
    }
};

1557. 可以到达所有点的最少点数目

cpp 复制代码
class Solution {
public:
    vector<int> findSmallestSetOfVertices(int n, vector<vector<int>>& edges) {
        // 入度为0的点的集合,因为入度不为0的点一定可以由入度为0的点指向
        vector<int>ret;
        vector<int>in(n, 0);
        for(auto it : edges){
            in[it[1]]++;
        }
        for(int i = 0; i < n; i++){
            if(in[i] == 0){
                ret.push_back(i);
            }
        }
        return ret;
    }
};
相关推荐
翱翔的苍鹰13 分钟前
使用PyTorch实现线性回归的完整流程
算法·回归·线性回归
万行17 分钟前
机器人系统ros2&期末速通2
前端·人工智能·python·算法·机器学习
qq_4335545421 分钟前
C++ 图论算法:二分图最大匹配
c++·算法·图论
MSTcheng.25 分钟前
【算法】滑动窗口解决力扣『将x减到0的最操作数』问题
算法·leetcode·职场和发展
静心问道26 分钟前
动态规划分类及算法实现
算法·分类·动态规划
bbq粉刷匠28 分钟前
Java—排序1
数据结构·算法·排序算法
jghhh0128 分钟前
基于MATLAB的分块压缩感知程序实现与解析
开发语言·算法·matlab
智驱力人工智能29 分钟前
视觉分析赋能路面漏油检测 从产品设计到城市治理的实践 漏油检测 基于YOLO的漏油识别算法 加油站油罐泄漏实时预警技术
人工智能·opencv·算法·yolo·目标检测·计算机视觉·边缘计算
%xiao Q30 分钟前
信息学奥赛一本通(部分题解)
c语言·c++·算法
信奥胡老师34 分钟前
P14917 [GESP202512 五级] 数字移动
开发语言·数据结构·c++·学习·算法