栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++刷题之旅(32)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++刷题之旅(32)

LeetCode算法入门(第三十二天) 数组 240.搜索二维矩阵Ⅱ

class Solution {
public:


    bool searchMatrix(vector>& matrix, int target) {
        int m = matrix.size();
        int n = matrix[0].size();

    //    for(int i = 0; i < m; ++i){
    //        for(int j = 0; j < n; j++)
    //        if(matrix[i][j] == target){
    //            return true;
    //        }
    //    }

    //    return false;
        for(const auto& row: matrix){
            auto it = lower_bound(row.begin(), row.end(), target);  //lower_bound在指定区域查找不小于目标值的第一个元素
            if(it != row.end() && *it == target){
                return true;
            }

        }
        return false;

    }
};
435.无重叠区间

class Solution {
public:

     static bool cmp(vector& a, vector& b){
            return a[1] < b[1];
        }

    int eraseOverlapIntervals(vector>& intervals) {
   
        if(intervals.size() == 0)
            return 0;
        
        sort(intervals.begin(), intervals.end(), cmp);   //以右边界排序

        int end = intervals[0][1];   //初始化为第一个区间的右边界
        int count = 1;      //记录不相交区间个数,第一个区间存在,初始化为1
        int ans = 0;
        for(int i = 1; i < intervals.size(); i++){
            if(end <= intervals[i][0]){    //如果初始区间的右边界end <= 当前区间的左边界,则是不相交区间
                count++;                    
                end = intervals[i][1];      //更新边界为当前区间的右边边界
            }
        }
        ans = intervals.size() - count;
        return ans;
    }
};

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/767823.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号