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

炫酷企业网站百度上海分公司地址

炫酷企业网站,百度上海分公司地址,汕头老城区图片,如何查网站的备案号题目描述 给定一个矩阵,包含 N * M 个整数,和一个包含 K 个整数的数组。 现在要求在这个矩阵中找一个宽度最小的子矩阵,要求子矩阵包含数组中所有的整数。 输入描述 第一行输入两个正整数 N,M,表示矩阵大小。 接下…

题目描述

给定一个矩阵,包含 N * M 个整数,和一个包含 K 个整数的数组。

现在要求在这个矩阵中找一个宽度最小的子矩阵,要求子矩阵包含数组中所有的整数。

输入描述

第一行输入两个正整数 N,M,表示矩阵大小。

接下来 N 行 M 列表示矩阵内容。

下一行包含一个正整数 K。

下一行包含 K 个整数,表示所需包含的数组,K 个整数可能存在重复数字。

所有输入数据小于1000。

输出描述

输出包含一个整数,表示满足要求子矩阵的最小宽度,若找不到,输出 -1。

用例输入

2 5
1 2 2 3 1
2 3 2 3 2
3
1 2 3
2

我们需要找到一个子矩阵,包含数字 1、2 和 3,并且每个数字的频率都至少是它在数组中出现的次数。

当窗口的列范围为 [3, 4] 时:

窗口包括列:[3, 1] 和 [3, 2],仍然包含数字 1、2 和 3。

2 5
1 1 3 2 3
1 3 2 3 4
3
1 1 4
5

解题思路

宽度最小,长度不限。其实就是找一个列区间。

  1. 滑动窗口法:使用滑动窗口在矩阵的列中查找子矩阵,保证窗口内包含所有需要的数字。窗口宽度从小到大逐步尝试,以找到最小的有效宽度。

  2. 具体步骤

    • 对于每一行,记录每列的数字出现情况。
    • 维护一个滑动窗口,该窗口内的列包含所有需要的数字及其频率。随着窗口的扩大,检查该窗口是否满足条件。
    • 如果满足条件,尝试收缩窗口以找到最小宽度。
  3. 最终结果:输出最小宽度,如果没有找到有效的子矩阵,输出 -1。

代码

#include <iostream>
#include <vector>
#include <map>
#include <climits>
#include <algorithm>
using namespace std;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int n, m;cin >> n >> m;vector<vector<int>> matrix(n, vector<int>(m));for (int i = 0; i < n; ++i) {for (int j = 0; j < m; ++j) {cin >> matrix[i][j];}}int k;cin >> k;map<int, int> re;  // 存储所需的数字及其频率for (int i = 0; i < k; ++i) {int num;cin >> num;re[num]++;}int min_width = INT_MAX;// 初始化最小宽度为最大值// i 为列区间的起始for (int i = 0; i < m; ++i) {map<int, int> cur;// 当前窗口内的数字频率int ok = 0;  // 当前窗口包含的满足条件的数字个数// 滑动窗口的右边界for (int j = i; j < m; ++j) {// 更新当前窗口的数字频率 把j列的数据加进去for (int t = 0; t < n; t++) {int num = matrix[t][j];if (re.count(num)) {cur[num]++;// 当数字的频率达到了要求的数量时if (cur[num] == re[num]) {ok++;}}}// 当前窗口包含所有需要的数字,更新最小宽度if (ok == re.size()) {min_width = min(min_width, j - i + 1);}}}// 输出结果if (min_width == INT_MAX) {cout << -1 << endl;}else {cout << min_width << endl;}
}
http://www.yayakq.cn/news/497007/

相关文章:

  • 怎么在服务器上部署网站软件下载网站如何履行安全管理
  • 上海网站建设百度推广公司哪家好各大网站的网址
  • 网站建设开发报价网络推广代理
  • 购物网站怎么做推广后端开发需要学多长时间
  • 怎样建立个人的网站电子商务平台经营者名词解释
  • 网站用什么做关键词亚马逊注册没有公司网站怎么做
  • 青岛做网站优化哪家好商城型外贸网站建设
  • 网站建设知识点深圳 网站 传播
  • 电子网站建设推广方案wordpress主页居中
  • 网站备案网站名称怎么填做网站哪里买空间好
  • 商务网站设计实训总结襄阳市住房和城乡建设局官方网站
  • 辽宁平台网站建设哪里好wordpress中文主题开发框架
  • 国外网站国内做二维码在哪里可以学到做网站
  • 江苏省住房建设厅网站首页京东网站开发技术
  • 电子商务网站建设题库引流黑科技app
  • 做展会怎么引流到自己的网站济南网站建设 选搜点o
  • 地方门户网站推广方案国内专业建站平台
  • 高校健康驿站建设指引wordpress禁用插件
  • 相关网站查询网站建设的基本条件
  • 建站模板下载后表单怎么修改做网站平台的营业执照
  • 360全景图制作杭州网站推广优化公司
  • 网上书城网站开发方案外贸网站的特色
  • 做网站 橙色怎么搭配南昌网站建设机构
  • php怎么做网站宁波公司名称大全
  • 咸宁网站建设报价手机网站无响应
  • 淘宝的网站建设费用专做特产的网站
  • 网站知识介绍网站开发公司徐州
  • 手机网站作用海口企业网站建设
  • 北京网站设计有名 乐云践新做商城网站需要的功能
  • 做游戏网站用什么系统做建站公司的服务器