华为OD机试真题 Java 实现【找最小数】【2023 B卷 100分】,附详细解题思路

news2025/2/25 21:43:00

在这里插入图片描述

一、题目描述

给一个正整数num1,计算出新正整数num2,num2为num1中移除N位数字后的结果,需要使得num2的值最小。

二、输入描述

输入的第一行为一个字符串,字符串由0~9字符组成,记录正整数num1,num1的长度小于32。

输入的第二行为需要移除的数字的个数,小于num1的长度。

三、输出描述

输出一个数字字符串,记录最小值num2。

例如:
2681372
4

输出132

四、解题思路

输入:

61811354 共8位 定义变量sum
4 移除的个数4 定义变量removeSum

输出4位 剩余的个数4 定义变量returnSum

输出:

1113

思路

  1. 计算出输出数字的位数sum;
  2. 从开头遍历到sum - returnSum,找到最小的数(获取第一位时,此时sum - returnSum为4,也就是遍历到下角标为4的数字,即从61811中找出最小值1);
  3. 再从当前位置遍历到sum - (returnSum-1),找到最小的数(获取第二位时,此时sum - (returnSum-1)为5,也就是从第一个数字1的下一个数字开始遍历,遍历到下角标为5的数字,即从8113中找出最小值1);
  4. 再从当前位置遍历到sum - (returnSum-2),找到最小的数(获取第三位时,此时sum - (returnSum-2)为6,也就是从第二个数字1的下一个数字开始遍历,遍历到下角标为5的数字,即从135中找出最小值1);
  5. 再从当前位置遍历到sum - (returnSum-3),找到最小的数(获取第三位时,此时sum - (returnSum-3)为7,也就是从第三个数字1的下一个数字开始遍历,遍历到下角标为7的数字,即从354中找出最小值3);
  6. 此时已经找到了4个数字,即1113。

我相信,屏幕前,聪明的你,已经找到了思路。

五、Java算法源码

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String num1 = sc.nextLine();
    int removeSum = Integer.valueOf(sc.nextLine());

    // 数字num1的长度
    int sum = num1.length();
    // 剩余字符串的长度
    int returnSum = num1.length() - removeSum;

    // 当前下角标
    int currentIndex = 0;

    // 返回的最小数字
    String ret = "";

    // 寻找第几位数字
    int index = 1;

    while (ret.length() < returnSum){
        // 求当前位的最小值
        int min = Integer.MAX_VALUE;
        // 获取第index位的最小数
        for (int i = currentIndex; i < sum - (returnSum - index); i++) {
            // char转int
            int temp = num1.charAt(i) - '0';
            min = Integer.min(min, temp);
        }

        // 获取第index位的最小数的下角标
        for (int i = currentIndex; i < sum - (returnSum - index); i++) {
            if(num1.charAt(i) - '0' == min){
                currentIndex = i;
                break;
            }
        }

        ret = ret + "" + min;
        // 下一次从当前位的下一位开始遍历
        currentIndex++;
        // 开始遍历下一位
        index++;
    }

    System.out.println(ret);
}

六、效果展示

在这里插入图片描述


🏆下一篇:华为OD机试真题 Java 实现【跳房子II】【2023 B卷 100分】,附详细解题思路

🏆本文收录于,华为OD机试(JAVA)(2022&2023)

本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/618919.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2.1 网络io、io多路复用select/poll/epoll、基于事件驱动的reactor

目录 一、网络IO请求二、一请求一线程三、IO多路复用——select的通俗理解1、select函数2、accpet函数3、recv函数 四、IO多路复用——poll五、IO多路复用——epoll1、epoll_create2、epoll_ctl3、epoll_wait4、epoll_event5、边缘触发和水平触发&#xff09; 五、区别对比1、s…

axios、跨域与JSONP、防抖和节流

文章目录 一、axios1、什么是axios2、axios发起GET请求3、axios发起POST请求4、直接使用axios发起请求 二、跨域与JSONP1、了解同源策略和跨域2、JSONP&#xff08;1&#xff09;实现一个简单的JSONP&#xff08;2&#xff09;JSONP的缺点&#xff08;3&#xff09;jQuery中的J…

Wwise内存问题

1&#xff09;Wwise内存问题 ​2&#xff09;安卓平台特效显示不一致的问题 3&#xff09;多个矩形小方块组成的地形接缝处有黑线问题 这是第339篇UWA技术知识分享的推送&#xff0c;精选了UWA社区的热门话题&#xff0c;涵盖了UWA问答、社区帖子等技术知识点&#xff0c;助力大…

nginx系列第七篇:结合nginx讨论“惊群”问题

目录 1.什么是惊群 2.linux下socket通信之accept"惊群"现象 3.select/poll/epoll"惊群"现象 4.nginx中的惊群处理 1.什么是惊群 "惊群"是多个进程(线程)阻塞在某个系统调用上等待事件触发&#xff0c;当事件触发后&#xff0c;这些睡眠的进程…

数位dp训练笔记

依稀还记得去年寒假的时候对数位dp的恐惧达到了顶峰&#xff0c;打死也不想做一题&#xff0c;也是怎么学都学不会&#xff0c;甚至板子也只是真的去网上copy了一份&#xff0c;自己也都不理解。&#xff08;羞愧&#xff09; 这个状态持续了一年多&#xff08;羞愧羞愧&#…

Windows操作/文件/设置/DOS 记录

目录 1.系统操作 1.环境变量 2.文件夹操作 1.显示隐藏文件夹 3.DOS窗口 1.DOS窗口中docker切换管理员root /]#身份: docker run -it centos​编辑 4.文件操作 1.图片分辨率无损修改尺寸&#xff08;例1280x800&#xff09; 2.图片修改png/jpg文件后缀类型 1.系统操作 1.…

Python 语句

文章目录 一、条件语句1、顺序语句2、条件语句3、缩进和代码块4、条件语句练习5、空语句 二、循环语句1、while2、for3、break和continue 一、条件语句 1、顺序语句 从上到下依次执行 2、条件语句 Python中使用if else关键字表示条件语句. ①if if expression:do_somethi…

PCB板的Mark点设计对SMT重要性

Mark点也称光学点、基准点&#xff0c;是电路板元器件组装中&#xff0c;PCBA应用于自动贴片机上的位置识别点。 Mark点的选用&#xff0c;直接影响到自动贴片机的贴片效率&#xff0c;因此在设计时&#xff0c;需要设计好Mark点以及其在板内的位置。 Mark点的设计 1、布局位…

String s = new String(“xyz“) 创建了几个对象?

这个问题相信每个学习 java 的同学都不陌生&#xff0c;作为一个经典的面试题&#xff0c;到现在工作这么多年了我真是认为挺操蛋的一个问题&#xff0c;在网上到现在你仍然可以看见很多讨论这个问题的人&#xff0c;其中不乏工作很多年的人都有争论&#xff0c;我认为还是有必…

GreatSQL删除分区慢的跟踪

GreatSQL删除分区慢的跟踪 背景 某业务系统&#xff0c;每天凌晨会删除分区表的一个分区(按天分区)&#xff0c;耗时较久&#xff0c;从最开始的30秒&#xff0c;慢慢变为1分钟&#xff0c;影响到交易业务的正常进行。 在测试环境进行了模拟&#xff0c;复现了删除分区慢的情…

市场火爆!三大发展优势加速汽车零部件行业布局

当前&#xff0c;中国新能源汽车自主品牌崛起&#xff0c;为汽车零部件发展带来新机遇&#xff1b;有别于传统汽车零部件市场&#xff0c;新能源领域&#xff0c;主机厂标准提升&#xff0c;对数字化要求逐渐提高&#xff0c;汽车零部件企业的智能制造异常重要&#xff0c;企业…

二分类结局变量Logistic回归临床模型预测(二)——3. 单因素多因素logistic回归分析及三线表(三)

本节讲的是二分类结局变量的临床模型预测,与之前讲的Cox回归不同,https://lijingxian19961016.blog.csdn.net/article/details/124088364https://lijingxian19961016.blog.csdn.net/article/details/124088364https://lijingxian19961016.blog.csdn.net/article/details/1300…

1929-2022年全球站点的逐月最低气温(Shp\Excel\12000个站点)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、湿度等指标&#xff0c;其中又以气温指标最为常用&#xff01;说到气温数据&#xff0c;最详细的气温数据是具体到气象监测站点的气温数据&#xff01; 之前我们分享过1929-2022年全球气象站…

Qt学习之旅 -信号与槽

文章目录 点击关闭窗口自定义信号和槽自定义信号和槽解决重载问题信号和连接信号断开连接Qt4版本信号槽连接Lambda表达式 点击关闭窗口 connect(信号发送者&#xff0c;发送的具体信号,信号接收者&#xff0c;型号的处理(槽slot));这里自定义的MyPushButton与QPushButton别无二…

【NLP】KMP匹配算法

一、说明 KMP算法。也称为Knuth-Morris-Pratt字符串查找算法可在一个字符串S内查找一个词W的出现位置。一个词在不匹配时本身就包含足够的信息来确定下一个匹配可能的开始位置&#xff0c;此算法利用这一特性以避免重新检查先前配对的字符。将时间复杂度从O(M*N)降为O(N). 这个…

C++ Primer Plus 第三章习题

目录 复习题 1. 为什么C有多种整型&#xff1f; 2. 声明与下述描述相符的变量&#xff1f; 3. C 提供了什么措施来防止超出整型的范围&#xff1f; 4. 33L和33之间有什么区别&#xff1f; 5. 下面两条C语句是否等价&#xff1f; 6. 如何使用C来找出编码88表示的字符&…

又一个生物标志物ADMA被发现!可为OA治疗提供新方向!

文章标题&#xff1a;Metabolite asymmetric dimethylarginine (ADMA) functions as a destabilization enhancer of SOX9 mediated by DDAH1 in osteoarthriti 发表期刊&#xff1a;Science Advances 影响因子&#xff1a;14.95 作者单位&#xff1a;浙江大学医学院附属邵逸…

EasyUi03

1.无限极分类. 1.1无限极分类介绍. 1.1.1何为无限极分类. 无限极分类简单点说就是一个类别能够分多个子类&#xff0c;而后一个子类又能够分多个子类&#xff0c;就这样无限分下去&#xff0c;就好象 windows能够新建一个文件夹&#xff0c;而后在这个文件夹里又能够建一些文…

《嵌入式系统》知识总结12:SysTick定时器

SysTick定时器 系统时钟&#xff08;SysTick&#xff09; Corte-M3在内核中包含的简单定时器 • 该定时器的时钟源可以来自CM3内部时钟&#xff08;FCLK&#xff09;&#xff0c;或CM3外部时钟&#xff08;STCLK&#xff09; • 在STM32微控制器中&#xff0c;SysTick的时钟源可…

平板触控笔哪款好用?电容笔牌子排行

现如今&#xff0c;电容笔越来越受欢迎&#xff0c;不少人在记笔记、学画画甚至是玩游戏的时候都会使用它。最近看到很多人问&#xff0c;iPad电容笔哪款好用&#xff1f;针对这个问题&#xff0c;我来给大家推荐四款公认好用的平替电容笔&#xff0c;一起来看看吧。 一、主动…