LeetCode:Largest Number - 求整型数组中各元素可拼合成的最大数字

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1、题目名称

Largest Number(求整型数组中各元素可拼合成的最大数字)

2、题目地址

https://leetcode.com/problems/largest-number/

3、题目内容

英文:Given a list of non negative integers, arrange them such that they form the largest number.

中文:给出一组非负整数,求这些非负整数可以拼接出的最大数字

说明:例如,给出数组 [3, 30, 34, 5, 9],拼接出的最大数字为9534330

4、解题方法

由于本题输入是一个整型数组,输出是一个字符串,因此在输出前,可以考虑对数组进行一下排序。

下面是一段WA(Wrong Answer)的Java代码,先将数组转换成一个字符串数组,再按照字符串的大小进行排序

import java.util.Arrays;
import java.util.Collections;/*** 功能说明:LeetCode 179 - Largest Number* 开发人员:Tsybius2014* 开发时间:2015年8月8日*/
public class Solution {/*** 最大的数字* @param nums 数组* @return*/public String largestNumber(int[] nums) {String[] array = new String[nums.length];for (int i = 0; i < nums.length; i++) {array[i] = String.valueOf(nums[i]);}Arrays.sort(array, Collections.reverseOrder());return String.join("", array);}
}

这个排序方法并不能按照题目要求正确排序。例如,数字8和883,如果按照字符串顺序排序,883大于8,就会把883放在前面,8放在后面,最后输出8838。而实际8883才是正确结果。正确的排序方法,是使用排序方法进行比较时,比较两个字符串(设为A和B),以先后顺序拼接而成的两个字符串A+B和B+A,如果A+B更大,则A在前B在后,否则A在后B在前。

一段可以AC(Accept)的Java代码如下:

/*** 功能说明:LeetCode 179 - Largest Number* 开发人员:Tsybius2014* 开发时间:2015年8月8日*/
public class Solution {/*** 最大的数字* @param nums 数组* @return*/public String largestNumber(int[] nums) {String[] array = new String[nums.length];for (int i = 0; i < nums.length; i++) {array[i] = String.valueOf(nums[i]);}String temp;for (int i = 0; i < array.length; i++) {for (int j = i + 1; j < array.length; j++) {if ((array[i] + array[j]).compareTo(array[j] + array[i]) < 0) {temp = array[i];array[i] = array[j];array[j] =temp;}}}if (array[0].equals("0")) {return "0";} else {return String.join("", array);}}
}

END

转载于:https://my.oschina.net/Tsybius2014/blog/489530

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296686.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js实现样式切换

2019独角兽企业重金招聘Python工程师标准>>> <ul id"styles"> <li id"default">经典</li> <li id"blue">淡蓝</li> <li id"brown">棕色</li> </ul> $("#styles li&…

CV算法面试题学习

本文记录了CV算法题的学习。 CV算法面试题学习 1 点在多边形内&#xff08;point in polygon&#xff09;2 高斯滤波器3 ViTPatch EmbeddingPosition EmbeddingTransformer Encoder完整的ViT模型 4 SE模块5 Dense Block6 Batch Normalization 1 点在多边形内&#xff08;point …

tinyid 教程_tinyid

软件简介tinyid 是滴滴开发的 id 生成器 分布式id生成系统&#xff0c;简单易用、高性能、高可用的id生成系统。提供的 REST API&#xff1a;nextId:curl http://localhost:9999/tinyid/id/nextId?bizTypetest&token0f673adf80504e2eaa552f5d791b644cresponse:{"data…

【推荐软件】wingrep

linux下搜索文本中的字符串时&#xff0c;习惯了find和grep的结合&#xff0c;很强大&#xff0c;但是windows下没有这两个命令&#xff0c;不用IDE编程时搜索略显不便。google一下&#xff0c;原来有wingrep工具可以用&#xff0c;可以实现相同的功能&#xff0c;来推荐一下给…

flash如何转html5,闪客精灵如何将Flash格式转换成HTML5

如何将Flash格式转换成HTML5?闪客精灵就是为Flash格式转换为HTML5而生的&#xff0c;他能够快速的将任何Flash文件&#xff0c;不管是SWF还是EXE格式的Flash格式转换成能被HTML5识别的HTML格式的文件。那么如何用闪客精灵将Flash格式转换为HTML5呢?下面是关于闪客精灵将Flash…

一壶 100℃ 的开水从多高倒进嘴里不会觉得烫?

全世界只有3.14 % 的人关注了爆炸吧知识先说结论&#xff1a;大约50米左右。 水从高空落下&#xff0c;先倒的水快&#xff0c;后倒的水慢&#xff0c;所以必然很快撕裂&#xff0c;成为细小的水滴。因此&#xff0c;这里就只讨论水滴的散热问题&#xff0c;而不考虑一大团水的…

Shell特殊变量

$ 表示当前Shell进程的ID&#xff0c;即pid $echo $$运行结果 2934特殊变量列表 变量含义$0当前脚本的文件名$n传递给脚本或函数的参数。n 是一个数字&#xff0c;表示第几个参数。例如&#xff0c;第一个参数是$1&#xff0c;第二个参数是$2。$#传递给脚本或函数的参数个数。…

当你的技术债务到期时,LinkedIn的故事 | IDCF

原文&#xff1a;https://www.linkedin.com/pulse/when-your-tech-debt-comes-due-kevin-scott/译者&#xff1a;冬哥那是 2011 年 10 月&#xff0c;就在 LinkedIn 上市后的第二次财报发布之前的几周。LinkedIn的业务做得很好&#xff0c;从任意可见角度来衡量&#xff0c;可以…

Libsvm分类步骤

1. 样本集的整理&#xff1a;提取特征&#xff0c;以LIBSVM指定格式存储。2. 特征的标准化处理&#xff1a;特征的缩放Scaling&#xff0c;避免量纲的影响。3. 选择合适的核函数类型4. 优选核函数的参数与C采用&#xff1a;交叉验证(或留一法)、grid-search5. 基于优选的参数&a…

ant vue 语言_Ant Design Vue是什么

Ant Design Vue 是蚂蚁金服 Ant Design 官方唯一推荐的Vue版UI组件库&#xff0c;组件的风格与Ant Design保持同步&#xff0c;组件的html结构和css样式也保持一致。Ant Design Vue 是遵循 Ant Design 的 Vue 组件库。是蚂蚁金服 Ant Design 官方唯一推荐的 Vue 版 UI 组件库&a…

再现神人!仅仅只花4天半就解开了史上最难密码,这下整个圈子都炸开了.........

全世界只有3.14 % 的人关注了爆炸吧知识鲁迅先生曾说&#xff0c;记录这东西&#xff0c;就是用来打破的。前阵子程序员圈子一定热呼的不可开交&#xff0c;咋回事&#xff1f;还不是因为有个程序员妹子捅出了一个大篓子。事情是这样的&#xff0c;在德国慕尼黑有一个名叫 Leah…

布鲁克大学计算机科学,布鲁克大学计算机科学本科.pdf

布鲁克大学计算机科学本科.pdf留学监理服务网布鲁克大学计算机科学 - Computer Science基本信息所属学校 布鲁克大学 - Brock University 所在院系 数学与科学学院 - 计算科学系专业名称 计算机科学 - Computer Science 学历层次 本科计算机与信息科学 计算与计算授予学位 计算…

HDU 1856 Brave Game(巴什博奕)

Brave Game Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3175 Accepted Submission(s): 2105 Problem Description十年前读大学的时候&#xff0c;中国每年都要从国外引进一些电影大片&#xff0c;其中有一部…

拥抱开源!除了微软红帽,这些国际大厂你认识几个?

在上世纪 90 年代&#xff0c;开源操作系统 Linux 出现时&#xff0c;有能力自行安装使用的用户并不多。因此&#xff0c;早期开源社区和开源软件厂商的一大工作就是向用户售卖书籍&#xff0c;提供初始的技术支持。比如基于 Linux 的内核&#xff0c;一批开源软件厂商开发出不…

J2EE第五课Servlet随课笔记

把上课笔记全上传到博客中&#xff0c;二原因&#xff1a; 1 方便自己以后查阅&#xff0c;看得多&#xff0c;记得多 2 提供一些笔记给刚学JAVA的朋友&#xff0c; 笔记&#xff1a; 1 1、什么是Servlet? 2 是运行于服务端&#xff08;java服务器&#xff09;的一个jav…

乒乓球单循环赛_乒乓球淘汰赛制和单循环赛制的比赛方法是什么?

展开全部一、乒乓球淘汰赛制比赛方法&#xff1a;1、32人先进行1轮淘汰赛&#xff0c;获胜的16人进入胜62616964757a686964616fe78988e69d8331333431363531者组&#xff0c;失败的16人进入败者组2、败者组第一轮&#xff1a;16人参赛&#xff0c;失败的8人被淘汰&#xff0c;胜…

详解Oracle DELETE和TRUNCATE 的区别

语法delete from aa truncate table aa 区别 1.delete from后面可以写条件&#xff0c;truncate不可以。2.delete from记录是一条条删的&#xff0c;所删除的每行记录都会进日志&#xff0c;而truncate一次性删掉整个页&#xff0c;因此日至里面只记录页释放&#xff0c;简言之…

湖南工业职业技术学院计算机协会,计算机网络协会

一、协会简介于2005年成立&#xff0c;系信息工程系直属协会。以学习网络知识理论及技术实践为主&#xff0c;以业余活动为辅的双向协会。由我系专业教研团队亲自授课教学&#xff0c;达到教学合一效果。注重培养高技能、高素质综合能力人才。二、协会宗旨以普及计算机基础知识…

浙大月赛C题(2012/8)Cinema in Akiba(线段树)

http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId4791 &#xff08;1&#xff09;第一次写浙大的题目&#xff0c;这题让我十分意外&#xff0c;基本的线段树类型&#xff08;求第x个空位&#xff09;。 &#xff08;2&#xff09;电影院里&#xff0c;一次…

你是一个优秀的IT PRO吗?(下篇)

首先感谢一些朋友阅读我的拙作《你是一个优秀的IT PRO吗&#xff1f;&#xff08;上篇&#xff09;》才使得我有动力写出这个下篇。在上篇中&#xff0c;我只是简单的总结了几条&#xff0c;要成为优秀的IT PRO所需要注意的几点&#xff0c;在这片文章中&#xff0c;我将根据我…