每天一道LeetCode-----将数值数组按一定顺序拼接,使得拼接的结果最大

解决LeetCode的Largest Number问题,通过将数值数组转化为字符串数组并排序,寻找最大拼接顺序。难点在于高位相等数字的排序,通过比较不同顺序的拼接结果来确定正确顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值