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

恢复数字序列 od

用例:

432111111111 4    原序列:111 112 113 114 

19801211 5  原序列:8 9 10 11 12 

91237999988880 7    原序列:87 88 89 90 91 92 93 

#include <iostream>
#include <string>
#include "vector"
#include "unordered_map"
using namespace std;bool iseque(unordered_map<int,int>& map_a, unordered_map<int,int>& map_b) {if (map_a.size() != map_b.size()) { //窗口内的map可能和对比的map不一致,因为数字的位数不一致return false;}for (auto i:map_a) {if (map_b.find(i.first) == map_b.end()) {return false;} else if (map_b[i.first] != i.second) {return false;} }return true;
}//整体思路:题目说的有序数组,就是递增序列,第一个想到的就是滑动窗口,为什么是滑动窗口?
//在一个1-1000的数组里面找到一个递增序列,里面每个数字出现的个数和打乱顺序出现的个数一致,这个数组就是打乱顺序之前的状态int main() {string num_str;int n;while (cin >> num_str >> n) {// cout<<num<<endl;// cout<<n<<endl;unordered_map<int,int> map_;for (auto i: num_str) {map_[i - '0']++;}int slow = 1;unordered_map<int,int> map_1;int cur_size = 0;for (int i = 1; i < 1004; i++) {string str = to_string(i);for (int i = 0; i < str.size(); i++) {map_1[str[i] - '0']++;}while (i - slow + 1 == n) {//窗口控制划过的数字个数,也即是题目给的第二个参数if (iseque(map_1, map_)) { //判断哈希表 找到目标窗 打印最小值slowcout<<slow<<endl;int count = slow;// while(count <= i) { //打印还原的数字序列//     cout<<count++<<' ';// }// cout<<endl;return 0;}string str_tmp = to_string(slow);//不是目标结果,就开始缩窗for (auto i:str_tmp) {//先缩哈希表 解决当前的slowmap_1[i - '0']--;if (map_1[i-'0'] == 0) {map_1.erase(i - '0');}}slow++;//然后再缩窗 先后顺序一定不要弄错!!!}}}
}
// 64 位输出请用 printf("%lld")

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

相关文章:

  • linux正则匹配
  • 【1.9】基于FPGA的costas环开发3——解调端低通滤波器模块
  • C语言编译器及其优化技术
  • 外国网站建站中国招商网
  • 自己建的网站也要注册域名吗wordpress云主机
  • 用 ssldump 跟踪 tls 问题
  • 《网络安全法》完成修改,AI安全正式“入法”
  • 算法笔记17 - 贪心算法介绍与思路 | 路灯摆放问题 | 活动安排问题 | 最低字典序拼接 | 金条分割问题 | 项目投资问题
  • CentOS系统一键安装Memcached教程
  • 构建本质安全:现代智能消防的物联网架构深度解析
  • 筑牢API安全防线
  • openssl自动升级(下载git相关)~~坑点
  • 用源代码做网站注册网站代码
  • 个人博客网站logo网络营销推广形式
  • 【计网】基于三层交换机的多 VLAN 局域网组建
  • Python键盘鼠标自动化库详解:从入门到精通
  • Prompt-R1:重新定义AI交互的「精准沟通」范式
  • 郑州国外网站建设克拉玛依市建设局网站
  • 国产化中间件东方通TongWeb环境安装部署(图文详解)
  • 防爆六维力传感器的本质安全,破解高危环境自动化难题
  • 达内网站开发做网站费用会计分录
  • 深圳营销型网站建设公司网络服务php网站开发打不开
  • GIT版本管理工具轻松入门 | TortoiseGit,Git 介绍软件安装配置,笔记01
  • Flutter中Column中使用ListView时溢出问题的解决方法
  • Linux 传输层协议
  • 攻防世界-Misc-适合作为桌面
  • STM32F103VET6开发板例程(一)-LED
  • 上海网站优化推广公司阿里云网站建设方案书
  • 基于Water Physics在Unreal Engine中实现水系统模拟与物体漂浮状态模拟
  • Qt-自定义按钮动画