小米OJ(9)移除K位得到的最小值

移除 K 位得到最小值 描述: 有一行由 N 个数字组成的数字字符串,字符串所表示的数是一正整数。移除字符串中的 K 个数字,使剩下的数字是所有可能中最小的。 假设: 字符串的长度一定大于等于 K 字符串不会以 0 开头 输入 一行由 N 个数字组成的数字字符串(0 < N < 20),和一个正整数 K(K < N),两个数据由空格隔开,如:1432219 3。 输出 移除 K 位后可能的最... 阅读详情

描述:

有一行由 N 个数字组成的数字字符串,字符串所表示的数是一正整数。移除字符串中的 K 个数字,使剩下的数字是所有可能中最小的。

假设:

输入: 

一行由 N 个数字组成的数字字符串(0 < N < 20),和一个正整数 K(K < N),两个数据由空格隔开,如:1432219 3。

  • 字符串的长度一定大于等于 K
  • 字符串不会以 0 开头

输出: 

移除 K 位后可能的最小的数字字符串。 如 1432219 移除 4, 3, 2 这 3 个数字后得到 1219,为所有可能中的最小值。 

输入样例:

1432219 3

10200 1

输出样例: 

1219
200

思路: 

从左向右,找到K范围内最小值,然后根据当前最小值索引删除此前字符,然后减小k值继续寻找,直到k=0,将最小值赋值到result

代码:

import sys

for line in sys.stdin:
    data, k = line.strip().split(" ")
    k = int(k)
    result = []
    while True:
        if k == 0:
            result.extend(data)
            break
        if len(data) == k:
            break
        minnum = min(data[:k+1])
        # print(minnum)
        minnum_index = data[:k+1].index(minnum)#返回最小字符的索引
        # print(minnum_index)
        data = data[minnum_index+1:]
        k -= (minnum_index)
        # print(k)
        result.append(minnum)
    print(int("".join(result)))

 

c++求解n位正整数删除k位之后的最小值 1.问题的重述       给定一个n位正整数a, 去掉其中k个数字后按原左右次序将组成一个新的正整数。对给定的a, k寻找一种方案,使得剩下的数字组成的新数最小。 2.问题的分析       根据问题所述首先我们先把n为正整数拆分成每一个数字存在一个数组arr[N]中,例如正整数19687,拆分之后存在数组 arr[5]={7,8,6,9,1},然后对这个数组按从打到小进行排序(也可以从小... 阅读详情

相关推荐

n位正整数去掉k位数字得到最小数(回溯法C++代码)

本代码文档利用回溯法思想,实现了n位正整数去掉k位数字得到最小数,并且含有测试代码,非常简单,详细,准确!

算法——移掉K位数字使得数值最小

给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。 leetcode 解题思路:如果这个数的各个位是递增的,那么直接从最后面开始移除一定就是最最小的;如果这个数的位值不是底层的,那么,尽量移除高位的逆序数字。如果最后变成递增了之后,k还有的剩,就再从后面移除大的数字。 记得需要移除高位的没有用的零。 class Solution { public String removeKdigits(String num, int k) { String.

Think Different. 806

删数算法(n 个数字中删除k个后,剩下的数组成最小的数字)

这是一个用C++写的简单算法,里面没用到什么高深的东西,就是基本的控制语句组成。

有一十进制正整数,移除其中的k个数,使剩下的数字是所有可能中最大的。假设:字符串的长度一定大于等于k,字符串不会以0开头

有一十进制正整数,移除其中的k个数,使剩下的数字是所有可能中最大的。 假设: 字符串的长度一定大于等于k 字符串不会以0开头 输入: 一行由正整数组成的数字字符串,和一个正整数k,俩个数据用空格隔开, 如:1432219 3 输出: 移除k位后可能的最大的数字字符串。 如1432219移除1 ,2,1这三个数字后得到4329,为所有可能中的最大值。 例子: 1432219 3 输出: 4329 代...

KyrieS2018的博客 2059

别再死记硬背Modbus报文了!用Python+Modbus Poll手把手教你调试工业设备

本文详细介绍了如何利用Python和Modbus Poll工具高效调试工业设备通信。通过实战案例和代码示例,帮助读者快速掌握Modbus通信协议的核心配置、数据监控技巧及Python自动化脚本编写,解决工业设备调试中的常见问题,提升工作效率。

weixin_42520780的博客 344

ifix5.8连接ab plc的点-通过rslinx

以ifix连接ab plc的点为例 1.先在rslinx上把plc的点导出为opc server 2.使用opc power tool 作为opc client 去连接 3.保存到项目的PDB文件夹下面,并且以节点名命名。 也可以不以节点名命名,系统自动会生成一个以节点名命名的这种文件,就显得很乱。 同时,项目的PDB目录下面必须还得拷过来一个de...

中国智造2025 4110

小米OJ上分日记——(九)移除 K 位得到最小值

序号:#9 难度:困难 时间限制:500ms 内存限制:10M 描述 有一行由 N 个数字组成的数字字符串,字符串所表示的数是一正整数。移除字符串中的 K 个数字,使剩下的数字是所有可能中最小的。 假设: 字符串的长度一定大于等于 K 字符串不会以 0 开头 输入 一行由 N 个数字组成的数字字符串(0 &lt; N &lt; 20),和一个正整数 K(K &lt; N),两个数据由空格隔开,如:...

Kahen的博客 891

6.5 构网型储能系统的协同控制策略

本文系统阐述了构网型储能系统的协同控制策略,重点分析了多机组群协同运行面临的功率分配不均、动态响应失配等挑战。研究提出了改进型下垂控制与虚拟阻抗法、基于一致性算法的分布式协同控制等解决方案,探讨了构网型储能与同步发电机在惯性响应、一次调频等方面的协同机制,以及与跟网型电源在电压支撑、阻抗重塑等方面的互补作用。文章构建了分层控制架构,为实现多类型电源的全局优化运行提供了技术路径,对提升高比例新能源电力系统的稳定性具有重要意义。

技术工作者 1001

小米oj 9 移除 K 位得到最小值

题目:https://code.mi.com/problem/list/view?id=9 AC代码(python3)如下: import sys for line in sys.stdin: line = line.strip() num,K = line.split(' ') K = int(K) for i in range(K): for...

Aser_Chen的博客 540

智能驾驶感知模块的测试评估方法(上)

对于智能驾驶系统而言,感知模块是开发难度最大、投入资源最多的核心部分。在智能驾驶开发团队内部,感知模块需要独立进行评测才能及早发现潜在缺陷或判断性能是否有改进。随着近几年BEV、OCC、E2E等新技术方案被越来越多企业应用,感知的评测变得越来越艰难,效率也变得越来越低下。本文作者基于在智驾测试行业多年经验,试图总结感知评测的基本规律和效率提升方法,以供读者一些启发。

vincent_321的博客 2559

高光谱目标检测论文学习(1)—— Hyperspectral Target Detection:Hypothesis Testing,SNR and SA Theories

前言 从这篇开始,将会学习一些高光谱目标检测的论文,我仍然把这篇文章放到了读论文专栏里,但是不对其进行顺序编号了,因为这个方向是比较小众的。今天来学习这篇TGRS2021的最新论文,讲的比较详细,相对比较适合初学者入门。我之前也写过一些有关目标检测的论文,但是高光谱目标检测(HTD)和之前的我们学的目标检测是不同的,因为其检测的对象不是普通摄像头得来的数字图像,而是高光谱遥感图像。其包含了很多光谱信息,而光谱信息本身经过处理后就可以作为特征,因此很多情况下就无需使用广义的目标检测问题中的卷积神经网络等方式去

MrBamboo2000的博客 7483

[小米OJ] 9. 移除 K 位得到最小值

思路: 重复k次:   1.找到并且删除第一个 num[i] > num[i+1] 的第i位数字。   2.若删除过程中,序列变成递增序列,则直接删除最后一位。 注意除去字符串头的0 def solution(line): num, k = line.split(" ") for j in range(0, int(k)): fl...

Rh's blog 129

10分钟极速SpringBoot项目搭建:OpenClaw AI实战攻略

OpenClaw,作为一款革命性的 AI 工具,凭借其强大的智能体能力,能够在短短 10 分钟内,帮助开发者从零构建一个完整的 SpringBoot 项目,实现真正的极速开发。它不仅极大地提高了开发效率,还降低了开发门槛,让更多的开发者能够专注于业务逻辑的实现,而无需被繁琐的配置工作所困扰

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 298

小米OJ 9: 移除k位得到最小值 java

题目: 有一行由 N 个数字组成的数字字符串,字符串所表示的数是一正整数。移除字符串中的 K 个数字,使剩下的数字是所有可能中最小的。假设:字符串的长度一定大于等于 K,字符串不会以 0 开头 输入:1432219 3 输出:1219 思路: 因为字符串是变化的,用StringBuffer存储。 如果str[i]大于等于str[i+1],则把str[i]去掉。 去掉后,去掉个数的记录n...

feifeifei_yu的博客 307

Windows11搭建GPU版本PyTorch 开发环境教程

Windows11搭建GPU版本PyTorch环境详细过程

世界那么大,我想去看看~【随心更新,看世界去了😄】 3236

从重复劳动到智能闭环:OpenClaw实战搭建小红书&公众号全自动化运营体系

如果你有一定的代码开发能力,还可以为OpenClaw开发自定义插件,拓展更多的功能,比如对接更多的平台,实现图文+短视频的全平台自动化运营;对接视频剪辑工具,实现短视频脚本生成、剪辑、配音、发布的全流程自动化;对接私域运营工具,实现公域引流、私域承接、用户转化的全链路自动化;对接电商平台,实现内容种草、商品上架、订单管理的全流程自动化,打造完整的内容电商闭环。新媒体运营的本质,是内容价值的传递,而不是机械的重复劳动。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 310

小米OJ刷题日志9——移除 K 位得到最小值

原题链接 描述 有一行由 N 个数字组成的数字字符串,字符串所表示的数是一正整数。移除字符串中的 K 个数字,使剩下的数字是所有可能中最小的。 假设: 字符串的长度一定大于等于 K 字符串不会以 0 开头 输入 一行由 N 个数字组成的数字字符串(0 < N < 20),和一个正整数 K(K < N),两个数据由空格隔开,如:1432219 3。 输出 移除 K 位后可能的最小的...

qq_40953042的博客 186

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

小米OJ刷题日志

虽然这OJ上的题比较水,但还是挺有意思的。关键是能赚钱 特别是提交方式 居然不支持C++,垃圾OJ 4. 最长连续数列 排序后dp 5. 找出旋转有序数列的中间值 写个排序就做完了。 6. 交叉队列 $f[i][j]$表示第一个队列匹配到了$i$位置,第二个队列匹配到了$j$位置是否可行 转移的时候分两种情况讨论 9. 移除 K 位得到最小值 显然左边的数比右边大的时...

weixin_30384031的博客 166

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

算法46----移除K位数字

一、题目:移除K位数字 给定一个以字符串表示的非负整数num,移除这个数中的 k 位数字,使得剩下的数字最小。 注意: num 的长度小于 10002 且≥ k。 num 不会包含任何前导零。 示例 1 : 输入: num = "1432219", k = 3 输出: "1219" 解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。 示...

weixin_34088838的博客 568

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

删除K个数字,使剩下的数字串最大

题目: 一个n位的数,去掉其中的k位,问怎样去掉使得留下来的那个(n-k)位的数最大? 分析: 可以直接用贪心来求解,每次寻找从头开始的连续递减序列,删除递减序列的最后一个元素,重复K次,最后剩下的数字串组成的数字最大。 比如: “13787323” 第一次,递减序列只有1,删除1,得到3787323 第二次,递减序列只有3,删除3,得到787323 第三次,递减序列只有7,删

lxmky的专栏 6551

mioj移除k位最小

小米oj —为某zhu筹备礼物的倒数58天 德州扑克 描述 有一行由 N 个数字组成的数字字符串,字符串所表示的数是一正整数。移除字符串中的 K 个数字,使剩下的数字是所有可能中最小的。 假设: 字符串的长度一定大于等于 K 字符串不会以 0 开头 输入 一行由 N 个数字组成的数字字符串(0 < N < 20),和一个正整数 K(K < N),两个数据由空格隔开,如:14...

spark 526

9、移除k位得到最小值

(个人水平有限,请见谅!) 描述: 有一行由 N 个数字组成的数字字符串,字符串所表示的数是一正整数。移除字符串中的 K 个数字,使剩下的数字是所有可能中最小的。 假设: 字符串的长度一定大于等于 K。 字符串不会以 0 开头。 输入: 一行由 N 个数字组成的数字字符串(0 &amp;amp;lt; N &amp;amp;lt; 20),和一个正整数 K(K &amp;amp;lt; N),两个数据由空格隔开,如:14322...

qq_30534935的博客 1085

删除K个数字,使剩下的数字串最大(最大数字)

问题描述 给你一个整数 n,使得从 n 中删除 k 个数字之后的数字最大。 样例输入 1432219 3 样例输出 4329 private static int[] solution(int[] array, int k) { if (null == array || array.length == 0 || k <= 0) { ...

永生只是一场幻梦 6835

[LeetCode] 402. Remove K Digits Java

题目: Given a non-negative integernumrepresented as a string, removekdigits from the number so that the new number is the smallest possible. Note: The length ofnumis less than 10002...

AC616288149的博客 339
上一篇: 小米OJ(8)最少交换次数
下一篇: 小米OJ(10)爬楼梯
Half_Soul
博客等级 码龄9年 5粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值