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

【华为上机真题 2022】数组组成的最小数字

🎈 作者:Linux猿

🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊!

🎈 关注专栏: 数据结构和算法成神路【精讲】优质好文持续更新中……🚀🚀🚀

🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬


目录

一、题目描述

1.1 输入描述

1.2 输出描述

1.3 测试样例

1.3.1 示例 1

1.3.2 示例 2

二、解题思路

三、时间复杂度


注意:题目来源于网络用户分享,本文仅分享做题思路和方法,如有侵权请联系我删除!

一、题目描述

给定一个数组,请从该数组中选择 3 个元素组成最小数字并输出 ( 如果数组长度小于 3,则选择数组中所有元素组成最小数字)。0 < 数组长度 < 100, 0 < 整数取值范围 <= 10000。

1.1 输入描述

一行用半角逗号分隔的字符串记录的整型数组。

1.2 输出描述

由 3 个元素组成的最小数字,如果数组长度小于 3,则选择数组中所有元素来组成最小数字。

1.3 测试样例

1.3.1 示例 1

输入

21,30,62,5,31

输出

21305

说明:数组长度超过3,需要选择3个元素来组成最小的数字,21305由21,30,5三个元素组成,为所有组合中的最小数字

1.3.2 示例 2

输入

5,21

输出

215

说明:数组长度小于 3,选择所有元素来组成最小值,215 为最小值。

二、解题思路

本题属于简单题,组合最小数字分两步:

(1)首先,将所有数字按从小到大排序,选择最小的三个数字(小于等于 3 个数字可以直接进入第二步);

(2)因为是组合成最小的数字,所以对最小的三个数字按照字符串进行再排序,排序后按照从小到大组合的结果即为最小数字。

三、代码实现

代码实现如下所示。

#include <iostream>
#include <sstream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

bool cmpInt(string a, string b)
{
    return atoi(a.c_str()) < atoi(b.c_str());
}

int main()
{
    string str;
    while (getline(cin, str)) {
        vector<string>g;
        stringstream stream(str);
        while (getline(stream, str, ',')) {
            g.push_back(str);
        }

        if (g.size() <= 3) {
            sort(g.begin(), g.end());
            for (auto val : g) {
                cout<<val;
            }
            cout<<endl;
            continue;
        }

        sort(g.begin(), g.end(), cmpInt);
        sort(g.begin(), g.begin() + 3);
        for (int i = 0; i < 3; ++i) {
            cout<<g[i];
        }
        cout<<endl;
    }
    return 0;
}

三、时间复杂度

时间复杂度:O(nlogn)

其中,n 表示输入数字的个数,在上述代码中,排序的时间复杂度为O(nlogn),所以时间复杂度为O(nlogn)。


🎈 感觉有帮助记得「一键三连支持下哦!有问题可在评论区留言💬,感谢大家的一路支持!🤞猿哥将持续输出「优质文章回馈大家!🤞🌹🌹🌹🌹🌹🌹🤞


相关文章:

  • Pr:导出设置之音频
  • html实训大作业《基于HTML+CSS+JavaScript红色文化传媒网站(20页)》
  • [LeetCode 1775]通过最少操作数使数组的和相等
  • js实现的在线绘图板,写字板
  • 迷宫逃离的问题-CoCube
  • 数据结构与算法(Java版) | 几个经典的算法面试题(上)
  • P3743 kotori的设备——二分答案
  • Unity Animancer插件(一)基本使用
  • 如何用vue+免费的webdb 实现一个世界杯足球竞猜系统
  • 一张图让你牢记MySQL主从复制原理|原创
  • 职场日常:软件测试人,一定要加班吗?
  • 百趣代谢组学分享,肠道神奇细菌竟能调控体重,减肥有望“吃出来”
  • [附源码]计算机毕业设计JAVA整形美容咨询网站
  • ES搜索提示unknown field [disable_coord]问题记录
  • Qt跨平台截图工具
  • React 的调度系统 Scheduler
  • .NET 桌面软件内存泄露分析
  • 【校招VIP】【约起来】java引言:java校招对项目的要求
  • 20221207英语学习
  • 数据聚合——DSLRestAPI
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉