给定一组非负整数nums,重新排列它们每个数字的顺序(每个数字不可拆分)使之
组成一个最大的整数.注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数.示例 1:
Input:nums=[10,2]
Output:"210"示例 2:
Input:nums=[3,30,34,5,9]
Output:"9534330"示例 3:
Input:nums = [1]
Output:"1"提示:
1<=nums.length<=100
0<=nums[i]<=109解题思路:
(1)将原数值数组转为字符串数组,方便拼接和比较;
(2)将字符串数组排序;
(3)从头到尾拼接结果;
字符串排序需要注意一点,当首位相等的时候,需要考虑到后面的位数,因此,通过比较
两个字符串前后进行相加进行比较,得出较大者.
#include <iostream>
#include <vector>
#include <algorithm>/*generate、sort*/
#include <string>/*to_string函数*/
#include <numeric>/*accumulate函数*/using namespace std;class Solution{
public:string largestNumber(vector<int>& nums){vector<string> ans(nums.size());auto it=nums.begin();/*转换成字符串数组*/generate(ans.begin(),ans.end(),[&it]{return to_string(*(it++));//*(it++)等价于*it++,先it指向的值,再进行指针加1});/*排序*/sort(ans.begin(),ans.end(),[](auto& a,auto& b){return a+b>b+a;});/*拼接*/string result=accumulate(ans.begin(),ans.end(),string(""),[](auto& a,auto& b){return a+b;});return result;}
};
int main(int argc,char* argv[]){vector<int> nums={3,30,34,5,9};cout<<Solution().largestNumber(nums)<<endl;return 0;
}

LeetCode:求一个整形数组中组合的最大数相关推荐

  1. 一个整形数组中最大值求和问题(3)

    新要求: 在"一个整形数组中最大值求和问题(2)"的基础之上,加入了新要求. 将一位数组变成环形数组. 首先在自己看到这道题目的时候,并没有什么思路,然后老师一点一点的旁敲侧击,自 ...

  2. 把一个整形数组中重复的数字去掉 - 微软面试题

    请把一个整形数组中重复的数字去掉.例如:  1,   2,   0,   2,   -1,   999,   3,   999,   88  答案应该是: 1,   2,   0,   -1,   9 ...

  3. 求二维数组中的最大值和最小值C语言,c语言 写一个子函数要求找出一个二维数组的最大值...

    并且返回两个维 求助 想不出来怎么写 题主的问题问的不够清楚.我假设你说的二维数组里面保存是整数,问的是找到二维数组中的最大值,并且返回一个最大值的位置.函数内部两个for循环遍历数组,能找到最大值和 ...

  4. c语言数组求逆序对,LeetCode 面试题51. 数组中的逆序对

    面试题51. 数组中的逆序对 题目来源:https://leetcode-cn.com/problems/shu-zu-zhong-de-ni-xu-dui-lcof/ 题目 在数组中的两个数字,如果 ...

  5. Java黑皮书课后题第7章:7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则最小

    7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则返回最小的下标) 题目 题目描述 ...

  6. Java黑皮书课后题第7章:7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值

    7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值 题目 题目描述与运行示例 破题 代码 ...

  7. 输入一个数组,求出这个数组中的逆序对的总数

    题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%1000 ...

  8. c语言如何输出整形数组,C语言 有一个整形数组a,有10个元素,要求输出数组中的全部元素...

    有一个整形数组a,有10个元素,要求输出数组中的全部元素 解题思路:引用数组中各元素的值有3种方法:1.下标法,如a[3];2.通过数组名计算数组元素的地址,找出元素的值 3.用指针变量指向数组元素. ...

  9. 结对开发——返回一个整数数组中最大子数组的和 (首尾相接版)

    一.题目及题目要求 题目:返回一个整数数组中最大子数组的和. 要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果 ...

最新文章

  1. AIoT的生死局:未来的AIoT很赚钱,但目前的AI+IoT很花钱
  2. 互联网主要安全威胁解读及应对方案大讨论 | 高可用架构系列
  3. C++ STL : 模拟实现STL中的关联式容器map和set
  4. bloomberg用法 固定收益_内部收益率的用法浅谈某保险的真实收益率
  5. C++ STL list排序
  6. MYSQL建表时数据类型的选择
  7. 吴恩达深度学习4.3练习_Convolutional Neural Networks_Car detection
  8. DNT精英论坛(暨.NET北京俱乐部)第1期:见证.NET,风口上的成功案例!
  9. Dzz1.3测试,增加IM、桌面协作、多选等。修缮问题后发布下载
  10. 极海单片机串口调试记录
  11. 敲开脑洞(一),如何摆脱痛苦,记自己的短期修行
  12. vue项目微信公众号title设置和调用接口动态修改
  13. python这个怎么读-python怎么读(python怎么读中文)
  14. docker搭建openstf, 远程无延时控制手机
  15. 计算机图形学基础第七章ppt,计算机图形学 -第七章讲义ppt课件
  16. [GKCTF2020]EZ三剑客-EzWeb
  17. 自定义配置log日志
  18. SQL Dblink SQL
  19. 【最新】智慧图书馆管理软件应该全面考量各个模块的建设
  20. Chrome控制台打印输出彩色调试信息

热门文章

  1. 三国志战略版:王师秉节,新“货币”【威名】分析
  2. 数据分析库pandas
  3. 网易极客战记-KITHGARD地牢--囚犯
  4. feign发送请求时到注意事项
  5. 华为ICT云赛道练习题(存储)
  6. 第五人格为什么总是服务器维护,《第五人格》闪退怎么办 第五人格闪退解决方式...
  7. 尼尔: 机械纪元 之 钓鱼外设
  8. 正确创建Python二维数组
  9. 警惕微信上主动加你的“美女”
  10. SQL注入是什么,怎么防止SQL注入?