内卷之源:

暂无

题目描述:

* 线人提供加密的时间,警官需要解密。
 * 实际时间在输入时间之后的最近的时间点。
 * 一个数字可重复用多次,但不能无中生有。
 * 
 * 备注:(1)输入由用例保证,不会出现类似1:35和01:5之类的输入
 *              (2)时间可能在第二天

测试用例:

Input Output
01:35 01:50
23:59 22:22
22:59 22:22
23:45 23:52
19:34 19:39
18:52 18:55
20:12 20:20
06:58 08:00

思路分析:

真实时间在输入时间之后,数字可重复用多次,因此将组成时间的四个数字拆开,两两组合,最多16种,然后从中选出大于输入的时间组合即可。但要注意:H∈[00,23],M∈[00,59]

编程实现(C++):

/************************************************************** @author    SLF* @version     V1.0.0* @date      05-Jul-2021*************************************************************/
#include <iostream>
#include <iomanip>
#include <array>
#include <algorithm> //sortusing namespace::std;int main(void)
{int H, M; //小时、分钟int split[4] = {0};// array<int, 16> H_M_gen_stl = {0};int H_M_gen[16] = {0}; //将24小时制的四个数字重新组成两位数int H_M_gen_num = 0;scanf("%d:%d", &H, &M);split[0] = H/10;split[1] = H%10;split[2] = M/10;split[3] = M%10;//generatefor(int i = 0, j = 0, t = 0; 4 > i; ++i){if(5 < (t = split[i])) //分钟显示不超过59{continue;}for(j = 0; 4 > j; ++j){H_M_gen[H_M_gen_num] = 10*t + split[j];// H_M_gen_stl[H_M_gen_num] = 10*t + split[j];++H_M_gen_num;}}// sort(H_M_gen_stl.begin(), H_M_gen_stl.begin() + H_M_gen_num);//select sortint inx_min = 0;bool exchg = false;for(int i = 0, j = 0, t = H_M_gen_num - 1; t > i; ++i){inx_min = j = i;while(H_M_gen_num > (++j)){if(H_M_gen[inx_min] > H_M_gen[j]){inx_min = j;exchg = true;}}if(exchg){exchg = false;swap(H_M_gen[inx_min], H_M_gen[i]);}}//decrypt crime timeif((23 == H) && (H_M_gen[H_M_gen_num -1] == M)){//若H是23时,且M是最大分钟数,则次日最早时间cout << setfill('0') << setw(2) << H_M_gen[0] << ":" << setw(2) << H_M_gen[0] << endl; //排序后第一个数绝对小于23// printf("%02d:%02d\n", H_M_gen[0], H_M_gen[0]);return 0;}for(int i = 0; H_M_gen_num > i; ++i){//基于H,判断Mif(M < H_M_gen[i]){cout << setfill('0') << setw(2) << H << ":" << setw(2) << H_M_gen[i] << endl;return 0;}}//相同H,M最大//下一个最小时间组合for(int i = 0, t = H_M_gen_num - 1; H_M_gen_num > i; ++i){if((24 > H_M_gen[i]) && (H < H_M_gen[i])){cout << setfill('0') << setw(2) << H_M_gen[i] << ":" << setw(2) << H_M_gen[0] << endl;return 0;}if(t == i) //次日{cout << setfill('0') << setw(2) << H_M_gen[0] << ":" << setw(2) << H_M_gen[0] << endl;return 0;}}return 0;
}

郑重提示:​​​​​​​①解题思路非最优,覆盖条件可能不全,仅供练习参考。

②若有更佳思路或疑问,可在评论区留言相互讨论,不亦乐乎。

③本文不允许转载,若认可本文,可点赞收藏关注。

数据结构和算法:警察根据线人提供的加密时间破案相关推荐

  1. python【解密犯罪时间】警察在侦破一个案件时,得到了线人给出的可能犯罪时间,形如“HH:MM”表示的时刻。

    警察在侦破一个案件时,得到了线人给出的可能犯罪时间,形如"HH:MM"表示的时刻. 根据警察和线人的约定,为了隐蔽,该时间时修改过的,解密规则为:利用当前出现过的数字,构造下一个距 ...

  2. vrp 节约算法 c++_数据结构和算法(Golang实现)(8.1)基础知识-前言

    基础知识 学习数据结构和算法.我们要知道一些基础的知识. 一.什么是算法 算法(英文algorithm)这个词在中文里面博大精深,表示算账的方法,也可以表示运筹帷幄的计谋等.在计算机科技里,它表示什么 ...

  3. 数据结构与算法 --- 第一章 绪论

    数据结构与算法 第一章 绪论 1. 作者的话 2. 为什么要学习数据结构与算法 3. 数据结构与算法的作用 4. 数据结构的概念 4.1 名词解读 4.2 什么是数据 4.3 数据结构 4.4 逻辑结 ...

  4. 从这个11.11开始,终结数据结构与算法的噩梦

    双十一电商大战一触即发,各大平台都在进行降价促销活动,0点后又有不少人要买买买了,薅羊毛之余,别忘了极客时间双十一也有一波优惠活动,很多专栏都在限时降价. DD要给大家推荐的这个专栏也是其中之一--& ...

  5. 树的高度从零还是一开始数_数据结构与算法之1——树与二叉树

    数据结构一直是让人头疼,面试遇到手撕算法题时真是慌得不行,从啥也不会刷题刷到游刃有余,路漫漫其修远兮~~.本人还是个算法菜鸟,而且还是想转行互联网的半吊子(好想拿大厂offer啊,幻想中..),希望能 ...

  6. 学习数据结构和算法前瞻

    我并非计算机科班出身,以前只对C.java.Matlab.Python语言有粗略的了解,以前写代码的时候只会考虑功能能实现就行了,并不考虑性能方面的问题,对数据结构与算法从未学习过,更不了解什么时间复 ...

  7. 大一学生数据结构与算法的先后取舍

    [来信] 在上学期,突然一天一位学长问我要选择哪个方向,指的是算法和一般的开发.我回答他算法,而他说我对语言学的太心急,太快,不像是喜欢算法的,并和我说算法玩玩就好,不要陷得太深,并建议我走一般开发的 ...

  8. 数据结构 - Java -韩顺平 图解Java数据结构和算法

    数据结构 Lesson 1 数据结构的知识总结 1. 几个经典的算法面试题 2. 线性结构与非线性结构 2.1 稀疏数组 sparsearray 2.2 队列 2.2.1 顺序队列: 2.2.2 环形 ...

  9. 一.Java数据结构与算法:如何开始

    数据结构和算法是计算机科学的核心概念之一,它们在软件开发中起着至关重要的作用.学习Java数据结构和算法不仅有助于提高编程能力,还能让你在面试和职业发展中脱颖而出.本文将为你介绍数据结构和算法的重要性 ...

最新文章

  1. php linux 调试工具,内网Visual Studio Code通过XDebug远程调试linux服务器PHP脚本
  2. 第一次使用Winhex直接修改文件二进制数据
  3. Python之max(num, key=lambda x:x[0])用法的详细解析
  4. 刚刚,阿里发布AI谣言粉碎机,识别准确率达81%
  5. 蚂蚁金服CTO鲁肃:支付宝成就了我,我做了很多“拧螺丝”的事儿
  6. CodeForces - 1373E Sum of Digits(贪心)
  7. 有关不蒜子访问统计无法显示的解决方法
  8. xml转化为kml_借助ogr2ogr工具实现shp文件转换kml格式
  9. dhcp服务器分配指定ip,DHCP服务(自动分配IP、绑定固定IP)
  10. Caffe环境搭建指北
  11. java小游戏跳棋_Java跳棋小游戏源代码
  12. java设计模式(创建型)之生成器模式
  13. 华为USG6000V防火墙的初始密码及修改密码的操作
  14. Axure中级教程:管理后台内容模板(中继器全交互详解)
  15. win7电脑蓝屏没有修复计算机,Win7旗舰版系统电脑老是出现蓝屏的修复教程
  16. 【5G NR】SSB
  17. IBM服务器微软集群安装
  18. cocos2dx 3.17海外sdk接入填坑全纪录 Appodeal(广告) SDK 接入(5)
  19. mysql卸载不掉? 帮你清理注册表,重新安装数据库mysql
  20. 突破软件测试的瓶颈(上)

热门文章

  1. Android适配方法之dimen适配
  2. MySQL数据库与SQL优化
  3. Swagger UI简介
  4. Spring Boot集成Swagger UI
  5. 世上没有强大的敌人,只有不够强大的自己
  6. jupyter安装和使用小结
  7. php 求子串,字符串的连接与求子串,目测只有高手可以帮我解答了
  8. Ubuntu 20.04 安装配置 GitLab
  9. 【详解】Linux中 ~ / /home/ /root/之间区别和联系
  10. PHP编译为静态库,makefile生成静态库和动态库