题目:

给出一组非负整数,重新排列他们的顺序把他们组成一个最大的整数。

样例

给出 [1, 20, 23, 4, 8],返回组合最大的整数应为8423201

思路:直接交换两个数,然后判断交换之后的大小,并根据交换之后的结果,对数组进行排序,使其从数组的开始到数组的结束,组成的数字的最大。另外因为考虑到,可能会出现数据出现溢出的现象,需要先把整数的数组转化为字符串类型的数组。例如:对于2和23,谁应该排在前边,那么我们就对223和232进行字符串比大小,将组合成结果大的数字的23放在2的前面。

class Solution {
/**
* @param nums: A list of non negative integers
* @return: A string
*/
public String largestNumber(int[] nums) {
// write your code here
String[] s=new String[nums.length];
for(int i=0;i<nums.length;++i){
s[i]=Integer.toString(i);
}
//对字符串数组进行排序
Arrays.sort(s,new Comparator<String>(){ @Override
public int compare(String o1, String o2) {
//升序是前者减去后者,降序是后者减去前者。因为排序规则,就是结果就是将数组重新排序,能够从头到尾,实现最大值的问题,所以采用降序
return (o2+o1).compareTo(o1+o2); }
});
StringBuffer buf=new StringBuffer();
for(String temp:s){
buf.append(temp);
}
int index=0;
String string = buf.toString();
while(index<string.length()&&string.charAt(index)=='0'){
index++;
}
if(string.length()==0) return "0";
return buf.substring(index); } }

  

Lintcode算法的更多相关文章

  1. lintcode算法周竞赛

    ------------------------------------------------------------第七周:Follow up question 1,寻找峰值 寻找峰值 描述 笔记 ...

  2. 拿到蚂蚁金服的offer是一种什么体验?3年Java程序员分享面经

    前言:我是一名三年的Java程序员,之前一直是在外包公司工作的.在这个月五号的时候,通过我的学长做内推,有了去蚂蚁金服面试的机会.我是在12号接到的电话面试的,因为蚂蚁金服需要7天的简历评估的.还有就 ...

  3. (lintcode全部题目解答之)九章算法之算法班题目全解(附容易犯的错误)

    --------------------------------------------------------------- 本文使用方法:所有题目,只需要把标题输入lintcode就能找到.主要是 ...

  4. lintcode最长回文子串(Manacher算法)

    题目来自lintcode, 链接:http://www.lintcode.com/zh-cn/problem/longest-palindromic-substring/ 最长回文子串 给出一个字符串 ...

  5. 数据结构与算法/leetcode/lintcode题解

    http://algorithm.yuanbin.me/zh-hans/index.html

  6. [数据结构]——二叉树(Binary Tree)、二叉搜索树(Binary Search Tree)及其衍生算法

    二叉树(Binary Tree)是最简单的树形数据结构,然而却十分精妙.其衍生出各种算法,以致于占据了数据结构的半壁江山.STL中大名顶顶的关联容器--集合(set).映射(map)便是使用二叉树实现 ...

  7. Lintcode 166. 主元素

    ----------------------------------- Moore's voting algorithm算法:从一个集合中找出出现次数半数以上的元素,每次从集合中去掉一对不同的数,当剩 ...

  8. Lintcode 82.落单的数

    -------------------------------- 这道题好坑啊,自己说是2*n+1个数字,结果有组测试数据竟然传了个空数组进来... 经典位算法: n^n==0 n^0==n AC代码 ...

  9. 【刷题笔记】--lintcode木头加工(java)

    木头加工 题目描述 有一些原木,现在想把这些木头切割成一些长度相同的小段木头,需要得到的小段的数目至少为 k.当然,我们希望得到的小段越长越好,你需要计算能够得到的小段木头的最大长度. 注意事项 木头 ...

随机推荐

  1. JavaScirpt(JS)——DOM文档对象模型

    一.HTML DOM介绍 HTML DOM 是 W3C 标准(是 HTML 文档对象模型的英文缩写,Document Object Model for HTML). HTML DOM 定义了用于 HT ...

  2. jquery hover(overListener, outListener) || bind('mouseover',methodA).bind('mouseout',methodB)

    1.区别: bind方式,进入外部区域和内部区域都会触发相关方法(methodA 或methodB): hover方式,进入内部区域不会再触发相关方法. 2.example: <body> ...

  3. ADO.NET Tips

    1. SqlCommand.ExecuteScalar Method Executes the query, and returns the first column of the first row ...

  4. MD5简单实例

    如图当点击按钮时,会先判断是否第一次登陆,如果是第一次登陆登陆则会弹出设置密码的弹窗,若果登陆过则弹出登陆弹窗 其中输入的密码会用MD5加密下 package com.org.demo.wangfen ...

  5. django-1-应用开发基本套路

    Django 开发基本流程 创建项目 创建应用 修改配置文件 设计数据模型 后台管理注册 编写业务视图 编写模板文件 设置URL 访问测试/调试 部署上线 创建项目 django-admin star ...

  6. 微软技术大会直播倒计时7天 | 地球上的IT咖们,正在慢慢向北京聚集

    去年,一句歌词火了:“我在北方的寒夜里,四季如春.”足以见得,北京的冬天,是可以把人冻蒙圈儿的. 然而有一群人,却正在慢慢靠近这样寒冷的北京,7 天后,他们将齐聚在北京. 他们来这里干什么?又是来见谁 ...

  7. Nginx AWS ELB 域名解析后端502问题

    转载:http://liyangliang.me/posts/2016/04/nginx-aws-elb-name-resolution/

  8. C++ double 小数精度控制

    第一种方法:cout<<fixed<<setprecision(20)<<mydouble<<endl; #include <iostream&g ...

  9. 了解git /github

    一 GIT是什么? Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.Git ...

  10. SSH 学习记录及在SSH模式下使用XShell连接服务器

    传统的网络服务程序,如rsh.FTP.POP和Telnet其本质上都是不安全的:因为它们在网络上用明文传送数据.用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击 ...