力扣第 306 场周赛复盘

1. 矩阵中的局部最大值

6148. 矩阵中的局部最大值

题目描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

题目分析

简单模拟题,这道题数据范围不大,所以只需要模拟即可

AC代码

class Solution {
public:
    int findmax(vector<vector<int>>& grid,int x,int y)
    {
        int cur=0;
        for(int i=x;i<x+3;i++)
            for(int j=y;j<y+3;j++)
                cur=max(cur,grid[i][j]);
        return cur;
    }
    vector<vector<int>> largestLocal(vector<vector<int>>& grid) {
        int n=grid.size();
        vector<vector<int>> res;
        for(int i=0;i<n-2;i++)
        {
            vector<int> tmp;
            for(int j=0;j<n-2;j++)
                tmp.push_back(findmax(grid,i,j));
            res.push_back(tmp);
        }
        return res;
    }
};

2. 边积分最高的节点

6149. 边积分最高的节点

题目描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

题目分析

只需要遍历一遍,将每个点的边积分求出来即可,然后求出最大值。
注意:不能用unordered_map这是无序的,注意longlong

AC代码

class Solution {
public:
    int edgeScore(vector<int>& edges) {
        map<int,long long> hash;
        for(int i=0;i<edges.size();i++)
            hash[edges[i]]+=i;
        
        int maxi=-1,maxn=-1;
        for(auto it:hash)
        {
            if(it.second>maxn)maxi=it.first,maxn=it.second;
        }
        return maxi;
    }
};

3. 根据模式串构造最小数字

6150. 根据模式串构造最小数字

题目描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

题目分析

在这里插入图片描述

思路:贪心
假设区间全是升序,那么我们从小到大排序即可
如果有降序呢?那么我们将应该降序的区间的升序全部变成降序即可。
这样可以保证所得的数字最小。

AC代码

class Solution {
public:
    string smallestNumber(string pattern) {
        int n=pattern.size();
        string res;
        for(int i=1;i<=n+1;i++)res+=i+'0';// 从小到大
        int pre=-1;
        for(int i=0;i<=n;i++)
        {
            if(pattern[i]=='I')pre=i;
            if(pattern[i]=='D'&&(i==n-1||pattern[i+1]!='D'))
            {
                int l=pre+1,r=i+1;// 找出交换区间
                if(i==n)r=i;
                while(l<r)swap(res[l],res[r]),l++,r--;// 交换
                i++;
                pre=i;
            }
        }
        return res;

    }
};

4. 统计特殊整数

6151. 统计特殊整数

题目描述

在这里插入图片描述
在这里插入图片描述

题目分析

数位DP,没有接触过,后续补充

AC代码

总结感想

前两道题都是比较简单,第三题当时想到方法,但是实现有bug找了半天,而且其实代码也很杂,后续通过画图很轻松就知道怎么写了(以后要多画图),最后一道题其实一读就知道是数位DP,但是自己不会(其实碰到很多次,都没认真做过)。
多刷题,多总结,多画图,多反思!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋斗吧!骚年!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值