每天一道LeetCode-----将数值数组按一定顺序拼接,使得拼接的结果最大
Largest Number
原题链接Largest Number
给定一个数值数组,将数组中的数值按照一定顺序拼接在一起,使得拼接的结果值最大
思路:
- 将原数值数组转为字符串数组,方便拼接和比较
- 将字符串数组排序
- 从头到尾拼接结果
难点在如何对字符串数组排序,为了使结果最大,可以得知需要将数字打的排到前面,以图片为例,
- 9的数字最大,所以排在第一位
- 随后是5,排在第二位
- 对于3,30,34而言,通过比较可以看到34330这样可以得到最大值
对于第三步,如何比较高位相等的一些数字呢(如3,30,34),如果以30和34为例,排序的结果无非是
- 30在34的前面
- 34在30的前面
这两种,所以就把这两种结果比较即可,即判断3034和3430的大小关系从而确定30和34的先后位置
代码如下
class Solution {
public:string largestNumber(vector<int>& nums) {vector<string> strs(nums.size());auto it = nums.begin();/* 生成字符串数组 */std::generate(strs.begin(), strs.end(), [&it]{return std::to_string(*(it++));});/* 排序 */std::sort(strs.begin(), strs.end(), [](auto& lhs, auto& rhs){return lhs + rhs > rhs + lhs;});/* 拼接 */auto result = std::accumulate(strs.begin(), strs.end(), string(""), [](auto& res, auto& str) {return res + str;});/* 去除前缀0 */return (result.empty() || result.front() == '0') ? "0" : result;}
};
每天一道LeetCode-----将数值数组按一定顺序拼接,使得拼接的结果最大相关推荐
- 去掉数组最后一个元素_leetcode 34. 在排序数组中查找元素的第一个和最后一个位置每天刷一道leetcode算法系列!...
作者:reed,一个热爱技术的斜杠青年,程序员面试联合创始人 前文回顾: leetcode1. 两数之和--每天刷一道leetcode系列! leetcode2. 两数相加--每天刷一道leetcod ...
- c++两个数组对比去掉重复的元素_每日一道 LeetCode (8):删除排序数组中的重复项和移除元素...
❝ 每天 3 分钟,走上算法的逆袭之路. ❞ 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub:https://github.com/meteor1993/LeetCode Gi ...
- 每日一道 LeetCode (42):旋转数组
每天 3 分钟,走上算法的逆袭之路. 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub: https://github.com/meteor1993/LeetCode Gitee ...
- 一天一道LeetCode(61-90)
一天一道LeetCode(61-90) 文章目录 一天一道LeetCode(61-90) 61.旋转链表 62.不同路径 63.不同路径 II 64.最小路径和 65.有效数字(未解决) 66.加一 ...
- leetcode17. 电话号码的字母组合--每天刷一道leetcode算法系列!
作者:reed,一个热爱技术的斜杠青年,程序员面试联合创始人 前文回顾: leetcode1. 两数之和--每天刷一道leetcode系列! leetcode2. 两数相加--每天刷一道leetcod ...
- leetcode最小面积_每日一道 LeetCode (51):盛最多水的容器
❝ 每天 3 分钟,走上算法的逆袭之路. ❞ 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub:https://github.com/meteor1993/LeetCode Gi ...
- atoi函数_每日一道 LeetCode (50):字符串转换整数 (atoi)
❝ 每天 3 分钟,走上算法的逆袭之路. ❞ 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub:https://github.com/meteor1993/LeetCode Gi ...
- 【python】一道LeetCode搞懂递归算法!#131分割回文串 #以及刷LeetCode的一点点小心得 [数据结构与算法基础]
题目:给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串.返回 s 所有可能的分割方案. # 示例 输入: "aab" 输出: [["aa",&q ...
- 每日一道leetcode(python)695. 岛屿的最大面积
每日一道leetcode(python)695. 岛屿的最大面积 2021-08-21 给定一个包含了一些 0 和 1 的非空二维数组 grid .一个 岛屿 是由一些相邻的 1 (代表土地) 构成的 ...
最新文章
- 读书笔记----javascript函数编程
- 小程序服务器角色,小程序在我们的生活中扮演什么角色?
- esd管 低cj要求_TVS管与ESD保护二极管的区别,联系以及应用
- 【java作业】2、 编写两个函数,分别使用字节流、字符流实现文件的拷贝;点击按钮,将第三个文本框的字符串的值设置为第一个文本框的字符串+第二个文本框的字符串。
- CSS魔法堂:你一定误解过的Normal flow
- 16.04编译android 7.0,ubuntu16.04 编译Android5.1报错
- [js] 解释下深度优先遍历和广度优先遍历的区别及如何实现
- Python 数据结构与算法——归并排序
- 如何从云桌面(远程桌面)拷贝文件
- 最大公约数和最小公倍数的关系
- Python地学分析 — 通过GPS数据分析鸟类行踪 07
- android p适配三星s86,感受三星S8屏幕震撼 先过APP适配这道坎
- 上传图片校验图片类型、大小及尺寸
- Unity 数学基础
- Node如何去除短视频水印?
- node ncc 打包
- 苹果cms简洁精美影视模板整站源码
- ssm毕设项目大学生比赛信息管理系统38iiq(java+VUE+Mybatis+Maven+Mysql+sprnig)
- python 三元表达式_Python三元表达式
- IHS分析师:折叠屏幕手机2017年前难上市