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-30uniAPP 实现全屏左右滚动滚动的效果-icode9专业技术文章分享
- 2024-06-30如何在本地使用授权或插件-icode9专业技术文章分享
- 2024-06-30伪静态规则配置方法汇总-icode9专业技术文章分享
- 2024-06-29易优CMS安装常见问题汇总-icode9专业技术文章分享
- 2024-06-28易优新手必读安装教程-icode9专业技术文章分享
- 2024-06-28忘记eyoucms后台密码怎么办?-icode9专业技术文章分享
- 2024-06-26终极指南:Scrum中如何设置需求优先级
- 2024-06-26AI大模型企业应用实战(25)-为Langchain Agent添加记忆功能
- 2024-06-26小白家庭 nas 搭建方案-icode9专业技术文章分享
- 2024-06-23AI大模型企业应用实战(14)-langchain的Embedding