LeetCode——179. 最大数
2021/4/12 10:25:38
本文主要是介绍LeetCode——179. 最大数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题目描述
题干: 给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。 注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。 示例1: 输入:nums = [10,2] 输出:"210" 示例2: 输入:nums = [10] 输出:"10"
题解思路
返回数组中数字组成的最大数,最大数的问题我们都遇到过,但是这次的亮点在于不是单位的数字组合了 如果{4,42}和{4,45}这两个数组完全就是两个不同的答案了,所以这里我们不能像以前那样简单的排序 我们需要自己定义一种新的比较规则,这里采用lambda表达式来表示新的交换规则,代码如下
正确代码
class Solution { public String largestNumber(int[] nums) { //转换成String使用compareTo方法 String[] strNum = new String[nums.length]; for (int i = 0; i < nums.length; i++) { strNum[i] = String.valueOf(nums[i]); } //排序规则 Arrays.sort(strNum, (a, b) -> { return (b + a).compareTo(a + b); }); StringBuffer stringBuffer = new StringBuffer(); for (String s : strNum) { stringBuffer.append(s); } //排除{0,0}的情况 return stringBuffer.charAt(0) == '0' ? "0" : stringBuffer.toString(); } }
总结
思路是很好想到的,主要是实现新的数学比较难以实现,其实这里lambda表达式我不太清楚其含义 因为我学习到的lambda表达式时用来代替匿名内部类来定义新对象的,而这里并没有新的对象产生 如果文章存在问题或者有大牛可以帮我解惑,欢迎在评论区斧正和评论解释,各自努力,你我最高处见
这篇关于LeetCode——179. 最大数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-06Package Easy(基于 NSIS 的打包exe安装包工具)使用方法-icode9专业技术文章分享
- 2024-06-06基于 casdoor 的 ELK 开源登录认证解决方案: elk-auth-casdoor-icode9专业技术文章分享
- 2024-05-29Elasticsearch慢查询日志配置
- 2024-05-29揭秘华为如此多成功项目的产品关键——Charter模板
- 2024-05-29海外IDC业务拓展的7大挑战
- 2024-05-29InLine Chat功能优化对标Github Copilot,CodeGeeX带来更高效、更直观的编程体验!
- 2024-05-29CodeGeeX 智能编程助手 6 项功能升级,在Visual Studio插件市场霸榜2周!
- 2024-05-29AutoMQ 生态集成 Apache Doris
- 2024-05-292024年IDC行业的深度挖掘:机遇、挑战与未来展望
- 2024-05-29五款扩展组件齐发 —— Volcano、Keda、Crane-scheduler 等,邀你体验