LeetCode:求一个整形数组中组合的最大数
给定一组非负整数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:求一个整形数组中组合的最大数相关推荐
- 一个整形数组中最大值求和问题(3)
新要求: 在"一个整形数组中最大值求和问题(2)"的基础之上,加入了新要求. 将一位数组变成环形数组. 首先在自己看到这道题目的时候,并没有什么思路,然后老师一点一点的旁敲侧击,自 ...
- 把一个整形数组中重复的数字去掉 - 微软面试题
请把一个整形数组中重复的数字去掉.例如: 1, 2, 0, 2, -1, 999, 3, 999, 88 答案应该是: 1, 2, 0, -1, 9 ...
- 求二维数组中的最大值和最小值C语言,c语言 写一个子函数要求找出一个二维数组的最大值...
并且返回两个维 求助 想不出来怎么写 题主的问题问的不够清楚.我假设你说的二维数组里面保存是整数,问的是找到二维数组中的最大值,并且返回一个最大值的位置.函数内部两个for循环遍历数组,能找到最大值和 ...
- c语言数组求逆序对,LeetCode 面试题51. 数组中的逆序对
面试题51. 数组中的逆序对 题目来源:https://leetcode-cn.com/problems/shu-zu-zhong-de-ni-xu-dui-lcof/ 题目 在数组中的两个数字,如果 ...
- Java黑皮书课后题第7章:7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则最小
7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则返回最小的下标) 题目 题目描述 ...
- Java黑皮书课后题第7章:7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值
7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值 题目 题目描述与运行示例 破题 代码 ...
- 输入一个数组,求出这个数组中的逆序对的总数
题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%1000 ...
- c语言如何输出整形数组,C语言 有一个整形数组a,有10个元素,要求输出数组中的全部元素...
有一个整形数组a,有10个元素,要求输出数组中的全部元素 解题思路:引用数组中各元素的值有3种方法:1.下标法,如a[3];2.通过数组名计算数组元素的地址,找出元素的值 3.用指针变量指向数组元素. ...
- 结对开发——返回一个整数数组中最大子数组的和 (首尾相接版)
一.题目及题目要求 题目:返回一个整数数组中最大子数组的和. 要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果 ...
最新文章
- AIoT的生死局:未来的AIoT很赚钱,但目前的AI+IoT很花钱
- 互联网主要安全威胁解读及应对方案大讨论 | 高可用架构系列
- C++ STL : 模拟实现STL中的关联式容器map和set
- bloomberg用法 固定收益_内部收益率的用法浅谈某保险的真实收益率
- C++ STL list排序
- MYSQL建表时数据类型的选择
- 吴恩达深度学习4.3练习_Convolutional Neural Networks_Car detection
- DNT精英论坛(暨.NET北京俱乐部)第1期:见证.NET,风口上的成功案例!
- Dzz1.3测试,增加IM、桌面协作、多选等。修缮问题后发布下载
- 极海单片机串口调试记录
- 敲开脑洞(一),如何摆脱痛苦,记自己的短期修行
- vue项目微信公众号title设置和调用接口动态修改
- python这个怎么读-python怎么读(python怎么读中文)
- docker搭建openstf, 远程无延时控制手机
- 计算机图形学基础第七章ppt,计算机图形学 -第七章讲义ppt课件
- [GKCTF2020]EZ三剑客-EzWeb
- 自定义配置log日志
- SQL Dblink SQL
- 【最新】智慧图书馆管理软件应该全面考量各个模块的建设
- Chrome控制台打印输出彩色调试信息