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

算法设计与分析算法实现——删数问题

通过棋盘输入一个高精度的正整数n(n的有效位数<=240)去掉其中任意s个数字后,剩下的数字按原左右次序将组成一个新的正整数。变成对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小。
输入:n,s
输出:最后剩下的最小数
输入实例:
178543
4
输出示例:
13

首先题目的意思是,在不改变数字原有位置的前提下,删除s个数,使得剩下的数按照原有位置构成的新数字值最小。
那么数组不可进行排序来改变原有序列,易知,想要最后获得的数最小,那么越高位的数(数组下标越小的数)值要越小。
因此从前向后遍历数组,选择一定范围里最小的数,作为最后新数的高位,同时又要使得后面的数位够用。
这个一定的范围就是滑动窗口,滑动窗口的始端可以设置为构成新数上一个高位在原数组的位置的下一个;滑动窗口的末端必须不超过原数组的长度,又要保持原数组后面的位数构成新数够用。
因此两层循环,外层循环控制窗口不会超出原数组;内层循环求窗口内的最值。

在这里插入图片描述

//解题思路
//易知,越高位的数越小,则最后得数越小
//顺着数组从前向后滑动窗口,求窗口内的最小值
#include<iostream>
#include<cstdio> 
#include<string> 
using
http://www.lryc.cn/news/237634.html

相关文章:

  • 基于Vue+SpringBoot的超市账单管理系统 开源项目
  • 【Linux 内核分析课程作业 1】mmap 实现一个 key-valueMap
  • docker compose使用教程(docker-compose教程)
  • 印刷企业实施MES管理系统需要哪些硬件设施
  • Java JSON字符串替换其中对应的值
  • Android VSYNC发展历程
  • 外呼系统作用和优势有哪些okcc,ai源码
  • 智元机器人岗位内推
  • el-popover和el-tooltip样式修改(普通的组件样式修改方法,对popover是不生效的)
  • 【AI实用技巧】GPT写sql统计语句
  • LeetCode(31)无重复字符的最长子串【滑动窗口】【中等】
  • 天猫超市电商营销系统:无代码开发实现API连接集成
  • element表格分页+数据过滤筛选
  • 小程序判断是否授权位置信息和手动授权
  • 2023年亚太杯数学建模亚太赛A题思路解析+代码+论文
  • 【Android】画面卡顿优化列表流畅度六(终篇)
  • 一文了解:离散型制造业轻量化MES解决方案
  • 《云计算:云端协同,智慧互联》
  • Java stream流 常用记录
  • Spring Security6 用户身份认证
  • 钩子函数-hook
  • 拉链表-spark版本
  • 【笔记1-2】Qt系列:QkeyEvent 键盘事件 设定快捷键
  • adb突然获取不到华为/荣耀手机。。。
  • layui的layer.confirm获取按钮焦点
  • 【HarmonyOS】鸿蒙应用开发基础认证题目
  • Mocha
  • Java详解I/O
  • 数据处理生产环境_spark获取df列当前日期的前一天日期
  • 第四代智能井盖传感器,实时守护井盖位安全