最大数

力扣

给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。

示例 1:

输入: [10,2]
输出: 210

示例 2:

输入: [3,30,34,5,9]
输出: 9534330

说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。

eoj 18年复试机试真题

单点时限: 1.0 sec

内存限制: 256 MB

我想和你在一起

直到我不爱你

宝贝 人和人 一场游戏

我愿意为你死去

如果我还爱你

宝贝 反正活着 也没意义

宝贝 我也只能 这样为你

——李志《和你在一起》

现场4分10秒,小哥跟着逼哥嘶吼,泪流满面。我要和你在一起,直到我不爱你。有这么 n 个数字,联成一排拼到一起便是我爱你的时间,那么我们会在一起多久呢

例如: n=3 时,3 个整数 13,312,343 联接成的最长时间为: 34331213。

又如: n=4 时,4 个整数 7,13,4,246 联接成的最长时间为: 7424613。

输入格式

n (1≤n≤20),表示 n 个数。

接下来一行 n 个正整数,大小不超过 104。

输出格式

拼成的最长时间。

样例

input

3
623 583 413

output

623583413

解题思路

两题一个意思 只不过力扣不需要输入

用 stl 巧解 用字符串拼接来比较 其实难的在数学证明 这里且先记下这种由小范围推到全局(有点类似贪心这意思)

/* 力扣 leetcode */
bool cmp(string a, string b)//直接相加比较
{
return a+b > b+a; // 范围二者拼接较大的那个
} class Solution {
public:
string largestNumber(vector<int>& nums) {
vector<string> v;
for (int i = 0; i < nums.size(); i++)
{
string temp = to_string(nums[i]); // 将输入的int转为string
v.push_back(temp); // 推进vector中
}
sort(v.begin(), v.end(), cmp); // 关键排序
string ret; // 答案集
for (int i = 0; i < v.size(); i++)
{
ret += v[i]; // 直接按序拼接即可 数学理论暂不证明
if (v[0] == "0") // 经过上面的cmp 如若第一位为 0 后面也不用算了 最大就是0了
break;
}
return ret;
}
}; /* 需要输入的oj */
#include <bits/stdc++.h>
using namespace std;
bool cmp(string a, string b)
{
return a+b > b+a;
}
int main()
{
int n; cin >> n;
vector<int> nums;
vector<string> v;
for (int i = 0; i < n; i++)
{
int tmp; cin >> tmp;
nums.push_back(tmp);
} for (int i = 0; i < nums.size(); i++)
{
string temp = to_string(nums[i]);
v.push_back(temp);
}
sort(v.begin(), v.end(), cmp);
string ret;
for (int i = 0; i < v.size(); i++)
{
ret += v[i];
if (v[0] == "0")
break;
}
cout << ret;
return 0;
}

力扣Leetcode 179. 最大数 EOJ 和你在一起 字符串拼接 组成最大数的更多相关文章

  1. 力扣Leetcode 45. 跳跃游戏 II - 贪心思想

    这题是 55.跳跃游戏的升级版 力扣Leetcode 55. 跳跃游戏 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃 ...

  2. 【力扣leetcode】-787. K站中转内最便宜的航班

    题目描述: 有 n 个城市通过一些航班连接.给你一个数组 flights ,其中 flights[i] = [fromi, toi, pricei] ,表示该航班都从城市 fromi 开始,以价格 p ...

  3. 力扣Leetcode 面试题56 - I. 数组中数字出现的次数

    面试题56 - I. 数组中数字出现的次数 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次.请写程序找出这两个只出现一次的数字.要求时间复杂度是O(n),空间复杂度是O(1). 示例 ...

  4. 力扣Leetcode 1518. 换酒问题

    小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒.你购入了 numBottles 瓶酒. 如果喝掉了酒瓶中的酒,那么酒瓶就会变成空的. 请你计算 最多 能喝到多少瓶酒. 示例: ...

  5. 力扣Leetcode 461. 汉明距离

    给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换. 完成所有替换操作后,请你返回这个数组. 示例: 输入:arr = [17,18,5,4,6,1] 输 ...

  6. 力扣Leetcode 198. 打家劫舍

    打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警. 给定 ...

  7. 力扣Leetcode 680. 验证回文字符串 Ⅱ

    验证回文字符串 Ⅱ 给定一个非空字符串 s,最多删除一个字符.判断是否能成为回文字符串. 示例 1: 输入: "aba" 输出: True 示例 2: 输入: "abca ...

  8. 力扣Leetcode 560. 和为K的子数组

    和为K的子数组 给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数. 示例 : 输入:nums = [1,1,1], k = 2 输出: 2 , [1,1] 与 [1,1 ...

  9. 力扣Leetcode 50. 实现Pow(x, n)

    实现Pow(x, n) 实现 pow(x, n) ,即计算 x 的 n 次幂函数. 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, 3 ...

随机推荐

  1. PHP asXML() 函数

    实例 格式化 XML(版本 1.0)中的 SimpleXML 对象的数据: <?php$note=<<<XML<note>高佣联盟 www.cgewang.com& ...

  2. 错误记录:MIME type may not contain reserved characters

    最近遇到个问题,随手记录一下! 新做了一个项目,要通过HTTP请求发送ZIP文件到OSS平台,但上传过程中,总是出现下面错误提示: 初步判定,应该是包冲突原因!于是,分析MIME-TYPE获取源码发现 ...

  3. CI/CD:Jenkins的流水线demo入门

    在敏捷开发或者devops中,Jenkins常常作为CI/CD的主选平台,而流水线(Pipeline)是CI/CD的一个常见的体现形式,通过流水线,我们可以配置一个从编译打包,部署,自动化测试,到产品 ...

  4. Bytom Dapp 开发笔记(二):开发流程

    简介 这章的内容详细分析一下涉及智能合约Dapp的整个开发流程,注意是涉及只能合约,如果你只要一些基本转BTM功能没有太大意义,本内容补充一下官方提供的 比原链DAPP开发流程,详细实践过好踩到的一些 ...

  5. 文件上传Upload 学习笔记

    整理完自己还有点晕,看来还是得找点靶场自己练习练习Orz 1:客户端JavaScript校验 Burp改包即可 2:服务端对Content-Type进行校验 猜测后,修改对应Content-Type字 ...

  6. 2020-06-01:百万级int数据量的一个array求和。

    福哥答案2020-06-01: fork/join. 对于百万级长度的数组求和,单线程和多线程下区别不大.对于千万级长度的数组求和,多线程明显变快,大概是单线程的2-3倍. go语言测试代码如下: p ...

  7. C#LeetCode刷题-回溯算法

    回溯算法篇 # 题名 刷题 通过率 难度 10 正则表达式匹配   18.8% 困难 17 电话号码的字母组合   43.8% 中等 22 括号生成   64.9% 中等 37 解数独   45.8% ...

  8. C#开发笔记之04-如何用C#优雅的计算个人所得税?

    C#开发笔记概述 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/960 访问. 首先,要对个人所得税的计算方式了解之后再 ...

  9. Java 8中Lambda表达式默认方法的模板方法模式,你够了解么?

    为了以更简单的术语描述模板方法,考虑这个场景:假设在一个工作流系统中,为了完成任务,有4个任务必须以给定的执行顺序执行.在这4个任务中,不同工作流系统的实现可以根据自身情况自定义任务的执行内容. 模板 ...

  10. 笔记:Linux用户管理(补充)、权限管理、内存管理、网络管理、渗透常用命令

    一.用户管理(补充) 添加用户:useradd [选项] 用户名 useradd -u 5000 -g demogroup -G root -d /home/demo -s /bin/bash dem ...