华为上机试题8(查找最大递减数)

2023-11-04

题目

给出一个非负整数,找到这个非负整数中包含的最大递减数。一个数字的递减数是指相邻的数位从大到小排列的数字。
如: 95345323,递减数有:953,95,53,53,532,32, 那么最大的递减数为953。
如果输入的数字为负数,返回-1。

解题思路:先找出某个部分中的最大递减数,接着再在这些所以最大递减数中找一个最大的,比如953中找到最大的递减数是953,5323中找到最大的递减数是532。具体过程是:依次遍历整型数组数组中的每一个数字,如果该数字比前一个数字小,则添加到StringBuffer中,否则就要处理Stringbuffer,如果此时Stringbuffer的长度大于1,则将Stringbuffer中的数添加到数组中,接着Stringbuffer清空,继续重复操作

代码

public class GetMaxDescendingNum {
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        char[] c = in.next().toCharArray();
        // 如果输入时非负数
        if (c[0] != '-') {
            int length = c.length;
            System.out.println(length);
            int[] num = new int[length];
            for (int i = 0; i < length; i++) {
                num[i] = Integer.parseInt(c[i] + "");
            }
            System.out.println(getMax(num));

        }
        // 如果输入是负数
        else {
            System.out.println(-1);
        }

    }

    private static int getMax(int[] num) {
        int length = num.length;
//      保存递减数的数组
        int result[] = new int[length];
//      递减数组的下标
        int count = 0;
//      利用Stringbuffer构造递减数
        StringBuffer sb = new StringBuffer();
//      依次遍历整型数组数组中的每一个数字,如果该数字比前一个数字小,则添加到StringBuffer中,否则就要处理Stringbuffer
//      如果此时Stringbuffer的长度大于1,则将Stringbuffer中的数添加到数组中,接着Stringbuffer清空,继续重复操作
        for (int i = 0; i < length; i++) {
            if (i == 0)
                sb.append(num[i]);
//          如果该数字比前一个数字小,则添加到StringBuffer中
            else if (num[i] < num[i - 1])
                sb.append(num[i]);

            else if (num[i] >= num[i - 1]) {
//              如果此时Stringbuffer的长度大于1,则将Stringbuffer中的数添加到数组中
//              ,接着Stringbuffer清空,继续重复操作
                if (sb.length() > 1)
                    result[count++] = Integer.parseInt(sb + "");

                sb = new StringBuffer();
                sb.append(num[i]);
            }

        }
//  一定要记得将最后一组递减数放入到数组中
        if (sb.length() > 1)
            result[count++] = Integer.parseInt(sb + "");

        int max = 0;
//      从保存递减数的数组中找到一个最大的数,进行返回
        for (int i = 0; i < count; i++) {
            if (result[i] > max)
                max = result[i];

        }
        return max;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

华为上机试题8(查找最大递减数) 的相关文章

  • DHCP的配置(以华为eNSP为例)

    如有错误 敬请谅解 此文章仅为本人学习笔记 仅供参考 如有冒犯 请联系作者删除 基础知识介绍 络组建步骤 1 拓扑设计 2 IP地址规划 按照拓扑中划分的 络范围 规划 络位不同的IP地址 3 配置 1 配置各个节点的IP地址 2 路由 全
  • 牛掰!《鸿蒙零基础入门学习指南》重磅来袭

    前言 不久前 华为开发者大会2023 宣布不再兼容安卓 同时宣布了 鸿飞计划 余承东承诺再投入超百亿元 以扶持和打造鸿蒙生态 鸿蒙不再兼容安卓 欲与iOS 安卓在市场三分天下 这对中国国产操作系统而言 具有划时代的意义 近期 美团 网易 微
  • 鸿蒙4.0开发笔记之ArkTS装饰器语法基础@Prop@Link@State状态装饰器(十二)

    文章目录 一 哪些是状态装饰器 二 State Prop Link状态传递的核心规则 三 状态装饰器练习 一 哪些是状态装饰器 1 State 被装饰拥有其所属组件的状态 可以作为其子组件单向和双向同步的数据源 当其数值改变时 会引起相关组
  • Windows的最大威胁是尽然是“套皮安卓”的鸿蒙系统

    前言 自从鸿蒙问世以来 套皮安卓的言论就没有断过 但是那些现在还在说鸿蒙是套皮安卓的人 你知不知道微软已经组建了专门的 战略团队 来对付鸿蒙 因为这些专业的人早已经知道鸿蒙将是Windows的巨大威胁了 微软作为一个垄断操作系统多年的巨无霸
  • 鸿蒙开发入门:应用配置文件概述(FA模型)

    应用配置文件概述 FA模型 每个应用项目必须在项目的代码目录下加入配置文件 这些配置文件会向HarmonyOS的编译工具 HarmonyOS操作系统和应用市场提供描述应用的基本信息 应用配置文件需申明以下内容 应用的软件包名称 应用的开发厂
  • 鸿蒙系统的崛起对程序员来说是机遇、还是挑战呢?

    前言 最近 一个话题在程序员圈子里激起了热烈讨论 那就是鸿蒙系统的崛起是否会影响程序员的就业和发展 我该转去学鸿蒙开发吗 鸿蒙前景如何 值不值得投入时间研究 对此 程序员们表达了各种疑虑和困惑 的确 一个全新的操作系统的出现确实让人眼花缭乱
  • 各大厂为什么要适配鸿蒙?鸿蒙到底值不值得学

    各大厂为什么要适配鸿蒙 今天在脉脉上看到这个问题 有好多人在下面回复说什么不适配就不爱国之类的话 但是我们仔细想想 这些大厂资本家真的会被这些 不爱国 的舆论影响吗 这些大厂的公关花钱分分钟就能把舆论导向指向其他地方 不然为什么网上那么多黑
  • 华为ensp-无线小型wlan配置教程

    实验拓扑图 实验平台 ENSP510 实验设备 Centered Cloud AC6005 AP4030 STA Cellphone vlan范围划分 vlan 101 10 23 101 1 24 vlan 100 10 23 100 1
  • 华为OD机试真题-分配土地-2023年OD统一考试(C卷)

    题目描述 从前有个村庄 村民们喜欢在各种田地上插上小旗子 旗子上标识了各种不同的数字 某天集体村民决定将覆盖相同数字的最小矩阵形的土地的分配给为村里做出巨大贡献的村民 请问 此次分配土地 做出贡献的村民中最大会分配多大面积 输入描述 第一行
  • 鸿蒙开发入门:deviceConfig内部结构

    deviceConfig内部结构 deviceConfig包含设备上的应用配置信息 可以包含default tv car wearable等属性 default标签内的配置适用于所有通用设备 其他设备类型如果有特殊的需求 则需要在该设备类型
  • 华为mpls vpn 跨域方案B

    跨域方案B原理 缺点是两个as如果有多个ce的话 asbr pe压力大 1 pe和P都和单域一样配置 只是asbr pe配置不同 2 2个asbr pe配置上面不需要建立ip vpn instance 实例 3 2个asbr pe互联接口上
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)更改应用名称

    鸿蒙 HarmonyOS 项目方舟框架 ArkUI 更改应用名称 一 操作环境 操作系统 Windows 10 专业版 IDE DevEco Studio 3 1 SDK HarmonyOS 3 1 二 更改应用名称 HAP 更改位置如下
  • 华为mpls vpn 跨域方案B

    跨域方案B原理 缺点是两个as如果有多个ce的话 asbr pe压力大 1 pe和P都和单域一样配置 只是asbr pe配置不同 2 2个asbr pe配置上面不需要建立ip vpn instance 实例 3 2个asbr pe互联接口上
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)更改应用图标

    鸿蒙 HarmonyOS 项目方舟框架 ArkUI 更改应用图标 一 操作环境 操作系统 Windows 10 专业版 IDE DevEco Studio 3 1 SDK HarmonyOS 3 1 二 更改图标 图标的位置 entry g
  • 【华为机试真题 Python】简单的自动曝光、平均像素值

    题目描述 一个图像有n个像素点 存储在一个长度为n的数组img里 每个像素点的取值范围 0 255 的正整数 请你给图像每个像素点值加上一个整数k 可以是负数 得到新图newImg 使得新图newImg的所有像素平均值最接近中位值128 请
  • 华为重夺第一,竞争对手就降价,这真的是巧合么?

    2024年Q4某国产手机品牌重夺国产手机品牌第一名 不过2024年开年第一周 国内手机市场的格局再次大变 华为夺下了第一名 不仅超越众多国产手机品牌 还超过了苹果 给国内手机市场带来震动 首先降价的是苹果 苹果的iPhone15自去年上市以
  • HarmonyOS 基于eTS高效开发HarmonyOS课程类应用

    随着HarmonyOS 3 0 Beta版的发布 API Version 8新增了大批JS eTS API接口 相信很多开发者已经迫不及待想体验基于eTS的HamronyOS应用开发 本期Codelab 我们将基于API Version 8
  • 做好这几件事,30岁的你也能转行鸿蒙(HarmonyOS)?

    当你年过30 不管你愿不愿意承认 你的精力都在走下坡路 25岁熬一个通宵能写出来的代码 30岁有可能需要一整天 当然你也可以选择不拼精力和体力 当自身的一线经验积累到一定程度后 就会选择慢慢过渡到管理者的角色 通过经验分享及任务分配来参与项
  • 2024年华为OD机试真题-虚拟游戏理财-Python-OD统一考试(C卷)

    题目描述 在一款虚拟游戏中生活 你必须进行投资以增强在虚拟游戏中的资产以免被淘汰出局 现有一家Bank 它提供有若干理财产品m 风险及投资回报不同 你有N 元 进行投资 能接受的总风险值为X 你要在可接受范围内选择最优的投资方式获得最大回报
  • 2024年华为OD机试真题-分割均衡字符串-Python-OD统一考试(C卷)

    题目描述 均衡串定义 字符串只包含两种字符 且两种字符的个数相同 给定一个均衡字符串 请给出可分割成新的均衡子串的最大个数 约定字符串中只包含大写的 X 和 Y 两种字符 输入描述 均衡串 XXYYXY 字符串的长度 2 10000 给定的

随机推荐