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

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

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

  1. c语言使用指针改数组逆置,用指针作函数参数,编写函数,将一个整型数组中的元素全部逆置。...

    满意答案 singoboss 2013.06.16 采纳率:57%    等级:11 已帮助:3587人 先输入,然后逆序存放,再输出.#include"stdio.h"#defi ...

  2. 求出N×M整型数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个)。

    功能:求出N×M整型数组的最大元素及其所在的行坐标及 列坐标(如果最大元素不唯一,选择位置在最前面 的一个). 例如:输入的数组为: 1 2 3 4 15 6 12 18 9 10 11 2 求出的最 ...

  3. c语言去掉数组中重复的,C语言删除无序整型数组中的重复元素及时间复杂度

    数组重复的问题在任何编程中都会有碰到了,这里介绍C语言删除无序整型数组中的重复元素及时间复杂度,希望对各位有帮助. 遇到一个题,大概要求是写一个函数处理来去掉一个无序的整型数组(例如int i_arr ...

  4. C++:找出一个整型数组中最大值。

    题目概述: 找出一个整型数组中最大值. 编程: #include< iostream> using namespace std; class array_max //声明类 { publi ...

  5. python fun函数、求4x4整型数组的主对角线元素的和_求一个4×4的整型二维数组主对角线元素之和...

    展开全部 下面是Java语言编写一个计算4*4整型数组对角线636f70793231313335323631343130323136353331333431353338元素和的代码: import j ...

  6. python fun函数、求4x4整型数组的主对角线元素的和_python中多维数组中列major的numpy整形...

    我试图将一个字符串转换成n维numpy数组(x,4,4).基本要求是4x4数组,列主要填充值.我们将根据输入字符串的长度使用任意多个4x4数组.例如,如果我的字符串是: "一只敏捷的棕色狐狸 ...

  7. python fun函数、求4x4整型数组的主对角线元素的和_输入4行4列的二维数组,求计算主对角线各元素之和,计算副对角线各元素之和。...

    展开全部 #include<stdio.h> int main(void) { int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; ...

  8. 求整型数组所有子串的和中的最大值

    #include <iostream> using namespace std;const int MIN_INT = -2147483647;int maxSum(const int * ...

  9. 整型数组中三个数的最大乘积

    题目:给定一个整形数组,在数组中找出由三个数组成的最大乘积. 示例1: 输入:{1,2,3} 输出: 6 示例2:{1,2,3,4} 输出: 24 ** 思路:先给数组排序,最大的数分为两种情况,一种 ...

最新文章

  1. CCF NOI1010 邮寄包裹
  2. input标签的值只能两位小数_Day51 HTML表格表单标签、flask框架
  3. Java 发起http GET POST请求实例
  4. Spark高级操作之json复杂和嵌套数据结构的操作
  5. 人是不是不应该善良?
  6. 全职宝妈做自媒体怎么样
  7. c语言实现语音检测vad_AI大语音(二)——语音预处理
  8. 独家揭秘阿里云SQL Server AlwaysOn集群版重大突破
  9. 【面经】关于Transformer,面试官们都怎么问
  10. 自己把握系统安全,Windows自启动程序的十大藏身之所
  11. 《统计学》第八版贾俊平第七章知识点总结及课后习题答案
  12. 超赞!设计师完全自学指南
  13. Ubuntu12.04 耳机无声 扬声器有声的解决
  14. mac系统我的世界服务器,我的世界Mac版怎么联机?
  15. html lang=zh-CN 中文标准写法与HTML标准定义
  16. 台式电脑计算机怎么用,怎么用键盘开机电脑_台式电脑键盘怎么开机-win7之家
  17. python小游戏井字棋(人机对战)
  18. springboot结合redis解决重复提交问题的实际应用
  19. 2022-ACS-Boosting Protein−Ligand Binding Pose Prediction and Virtual Screening Based on Residue−Atom
  20. (附源码)Springboot校园二手交易平台 毕业设计191637

热门文章

  1. iteritems()与items()
  2. 常用的搜索引擎dork (不断更新)
  3. “一次编写,随处运行” Intel HTML5技术研讨会
  4. 用JoyToKey使游戏手柄变键盘或鼠标
  5. Silverlight中开发和设计人员的合作文档信息
  6. Java泛型主题讨论
  7. spring boot中servlet启动原理
  8. vi 编辑器跳转到指定行数
  9. DataGridView很详细的用法
  10. infoseccrypto_java下载_關於php接ICBC的支付接口的解決方案