代码随想录打卡第35天

这篇具有很好参考价值的文章主要介绍了代码随想录打卡第35天。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

435. 无重叠区间

class Solution {
public:
static bool cmp(vector<int>&a,vector<int>&b)
    {
        if(a[0]==b[0]) return a[1]<b[1];
        return a[0]<b[0];
    }
    int eraseOverlapIntervals(vector<vector<int>>& intervals) {
        sort(intervals.begin(),intervals.end(),cmp);
        int left=intervals[0][0];
        int right=intervals[0][1];
        int count=0;
        for(int i=1;i<intervals.size();i++)
        {
            if(intervals[i][0]<right)
            {
                count++;
                left=min(left,intervals[i][0]);
                right=min(right,intervals[i][1]);
            }
            else 
            {
                left=min(left,intervals[i][0]);
                right=max(right,intervals[i][1]);
            }
        }
        return count;

    }
};

763. 划分字母区间

class Solution {
public:
    vector<int> partitionLabels(string s) {
        unordered_map<char,int> umap;
        for(int i=0;i<s.size();i++)
        {
            umap[s[i]]++;
        }
        unordered_set<char> uset;
        vector<int> res;
        int count=0;
        int pre=0;
        for(int i=0;i<s.size();i++)
        {
            uset.insert(s[i]);
            cout<<uset.size()<<endl;
            umap[s[i]]--;
            if(umap[s[i]]==0)
            {
                count++;
                cout<<"count"<<count<<endl;
                if(count==uset.size())
                {
                    res.push_back(i+1-pre);
                    pre+=i+1-pre;
                    count=0;
                    uset.clear();
                }
            }
        }
        return res;

    }
};

56. 合并区间

class Solution {
public:
    static bool cmp(vector<int>&a,vector<int>&b)
    {
        if(a[0]==b[0]) return a[1]<b[1];
        return a[0]<b[0];
    }
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        sort(intervals.begin(),intervals.end(),cmp);
        vector<vector<int>> res;
        int left=intervals[0][0];
        int right=intervals[0][1];
        if(intervals.size()==1) return intervals;
        for(int i=1;i<intervals.size();i++)
        {
            if(intervals[i][0]<=right)
            {
                left=min(left,intervals[i][0]);
                right=max(right,intervals[i][1]);
            }
            else
            {
                res.push_back(vector<int> {left,right});
                left=intervals[i][0];
                right=intervals[i][1];
                
            }
            if(i==intervals.size()-1)
                res.push_back(vector<int> {left,right});
        }
        return res;

    }
};

文章来源地址https://www.toymoban.com/news/detail-658125.html

到了这里,关于代码随想录打卡第35天的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 代码随想录算法训练51 | 动态规划part12

    本题加了一个冷冻期,状态就多了,有点难度,大家要把各个状态分清,思路才能清晰  视频讲解: 动态规划来决定最佳时机,这次有冷冻期!| LeetCode:309.买卖股票的最佳时机含冷冻期_哔哩哔哩_bilibili 代码随想录 相对122.买卖股票的最佳时机II ,本题只需要在计算卖出操

    2024年01月18日
    浏览(54)
  • 代码随想录Day20 回溯算法 LeetCode77 组合问题

    以下内容更详细解释来自于:代码随想录 (programmercarl.com) 回溯法也叫回溯搜索法,是搜索法的一种,我们之前在二叉树中也经常使用到回溯来解决问题,其实 有递归就有回溯 ,有的时候回溯隐藏在递归之下,我们不容易发觉,今天我们来详细介绍一下什么是回溯,它能解决哪些问题.

    2024年02月08日
    浏览(50)
  • 代码随想录Day_48打卡

    你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统, 如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。 给定一个代表每个房屋存放金额的非负整数数组,计算你  不触

    2024年02月11日
    浏览(38)
  • 代码随想录Day_52打卡

    给你一个整数数组  nums  ,找到其中最长严格递增子序列的长度。 子序列  是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如, [3,6,2,7]  是数组  [0,3,1,6,2,2,7]  的子序列。 事例: 思路:        使用动态规划,dp含义:dp[i]表示数

    2024年02月10日
    浏览(38)
  • 代码随想录补打卡 56 合并区间

    56 合并区间  代码如下 func merge(intervals [][]int) [][]int {         sort.Slice(intervals,func(i,j int)bool{  //将数组按左边界的大小排序         return intervals[i][0]intervals[j][0]     })     res := make([][]int,0) //定义一个目标数组     res = append(res,intervals[0])  //先将数组的第

    2024年02月02日
    浏览(46)
  • 代码随想录二刷day35

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

    2024年02月07日
    浏览(61)
  • 代码随想录 Leetcode459. 重复的子字符串(KMP算法)

            此解法读者需要了解什么是KMP算法以及KMP算法中next数组的具体含义才能理解         因为在KMP算法的next数组中,next[index]表示 i ndex之前的最大长度的相同前缀后缀值 ,那么要判断整个字符串中是否由重复字串构成,只需要以下两个条件:         1.next[n - 1] !=

    2024年01月19日
    浏览(74)
  • 【随想录】Day35—第八章 贪心算法 part04

    题目链接:435. 无重叠区间 贪心思路 : 正向遍历数组,利用哈希表存储三个面额的钱的个数 ⭐ 柠檬水找零 ——题解思路 题目链接:406. 根据身高重建队列 贪心思路 : 1. 身高降序排 :先根据身高进行降序排序,若身高相同,则 根据 前面有多少人升序排。 2. 按照排序位置

    2024年04月27日
    浏览(48)
  • 算法随想录第三十九天打卡|62.不同路径 , 63. 不同路径 II

    本题大家掌握动态规划的方法就可以。 数论方法 有点非主流,很难想到。  代码随想录 视频讲解: 动态规划中如何初始化很重要!| LeetCode:62.不同路径_哔哩哔哩_bilibili 总结 把m和n弄反了。 https://programmercarl.com/0063.%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84II.htmlhttps://programmercarl.com/00

    2024年01月20日
    浏览(47)
  • 代码随想录打卡—day41—【DP】— 8.26+27 DP基础3

    343. 整数拆分 一开始做 没有思路,学习了题解才,ac代码: 后来仔细看题解,其实 for - j 的次数可以优化—— 注意 枚举j的时候,是从1开始的。从0开始的话,那么让拆分一个数拆个0,求最大乘积就没有意义了。 优化1: j 的结束条件是 j i - 1 ,其实 j i 也是可以的,不过

    2024年02月11日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包