当前位置: 首页 > news >正文

hash滑窗|dp

 

lcr107

多源bfs

注意init ret -1防重复入队

 

if(x>=0 && x<m && y>=0 && y<n && ret[x][y] == -1)
// 最近距离 = 相邻0的距离 + 1
ret[x][y] = ret[a][b] + 1;

class Solution {
typedef pair<int,int> pii;
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};

public:
vector<vector<int>> updateMatrix(vector<vector<int>>& mat) 
{
queue<pii> q;
int m=mat.size(),n=mat[0].size();
vector<vector<int>> ret(m,vector<int>(n,0));

for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(mat[i][j]==0)
{
q.push({i,j});
}
else
{
// 标记未处理的1为-1
ret[i][j] = -1;
}
}
}

while(!q.empty())
{
auto [a,b] = q.front();
q.pop();

for(int k=0;k<4;k++)
{
int x=a+dx[k],y=b+dy[k];
if(x>=0 && x<m && y>=0 && y<n && ret[x][y] == -1)
{
// 最近距离 = 相邻0的距离 + 1
ret[x][y] = ret[a][b] + 1;

q.push({x,y});
}
}
}
return ret;
}
};

 

lcr17

滑动窗口+两个哈希表

在s里找包含t所有字符的最短子串,找不到就返回空

class Solution {

public:

    string minWindow(string s, string t) {

        unordered_map<char, int> tag;

        unordered_map<char, int> hash;

        for (char c : t) {

            tag[c]++;

        }

        int cnt = 0;

        int tcnt = t.size();

        int l = 0, r = 0;

        int minLen = INT_MAX;

        int start = 0;

        int n = s.size();

        

        while (r < n) {

            char c = s[r];

            hash[c]++;

            if (hash[c] <= tag[c]) {

                cnt++;

            }

            r++;

            

            while (cnt == tcnt)

        {

                if (r - l < minLen) {

                    minLen = r - l;

                    start = l;

                }

                char leftChar = s[l];

                hash[leftChar]--;

                if (hash[leftChar] < tag[leftChar]) 

                    cnt--;

                l++;

            }

        }

        return minLen == INT_MAX ? "" : s.substr(start, minLen);

    }

};

 

lc1186

 class Solution {
public:
int maximumSum(vector<int>& arr) {
int n=arr.size();
bool flag=false;
int maxNum=INT_MIN;
for(int i=0;i<n;i++){
if(arr[i]>0){
flag=true;
break;
}
maxNum=max(maxNum,arr[i]);
}


if(flag==false)return maxNum;
vector<int>pre(n+2),nex(n+2);
int add=0;
for(int i=1;i<=n;i++){
add+=arr[i-1];
if(add<arr[i-1]) add=arr[i-1];
pre[i]=add>0?add:0;
}


add=0;
for(int i=n;i>=1;i--){
add+=arr[i-1];
if(add<arr[i-1])add=arr[i-1];
nex[i]=add>0?add:0;
}
int ans=INT_MIN;
for(int i=1;i<=n;i++){
ans=max(max(ans,pre[i-1]+nex[i+1]+arr[i-1]),pre[i-1]+nex[i+1]);
}
return ans;
}
};

 

http://www.dtcms.com/a/565569.html

相关文章:

  • 免费APP 微信 网站平台汕头网
  • 网页翻译用什么软件长春百度关键词优化
  • 【js逆向案例三】瑞数6
  • 等保三级“通关”秘籍:如何化繁为简,高效通过
  • 【文笔碎屑】更深的温柔
  • 建设网站费用明细北京市建设工程资源交易网
  • gateface做网站文章类型网站
  • Spring Boot3零基础教程,StreamAPI 介绍,笔记98
  • windows-scoop管理jdk版本
  • 构建轻量级Thrift服务自动化部署Pipeline
  • 什么是seo优化?广州网站seo推广
  • OUC AI Lab第五章:生成式对抗网络 Diffusion
  • JAVA113 Leecode 3 无重复字符的最长字串
  • 给上市公司做网站有什么用ui设计软件sketch
  • 【05】JMeter导出接口 保存文件到本地
  • linux怎么使用wordpress网站关键词优化方法
  • 【每日一个AI小知识】:什么是多模态AI?
  • NumPy 全面指南:使用技巧、安全实践与生态对比
  • 【IC】NoC设计入门 -- 流控 Flow Control 与交换 Switching
  • 泉州网站建设费用dw制作网站网页模板
  • 网站建设费用组成提高工作效率的方法有哪些
  • PyQt5(八):ui设置为可以手动随意拉伸功能
  • 小迪安全v2023学习笔记(一百四十三讲)—— Win系统权限提升篇AD内网域控NetLogonADCSPACKDCCVE漏洞
  • 傻瓜动态建站 工具做照片书的网站
  • 【开题答辩过程】以《基于Spring Boot的相机租赁系统》为例,不会开题答辩的可以进来看看
  • 酷站网优设网页
  • 课后作业-2025-11-02
  • 一些sparksql的面试题
  • 数据结构(17)
  • 企业级 SaaS 服务 AI 优化全解析:从线索获取到续约的 7 个核心策略