微软面试100题-68
2016-05-13 11:56
441 查看
68.把数组排成最小的数(数组、算法)。
题目:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。
例如输入数组{32, 321},则输出这两个能排成的最小数字32132。
请给出解决问题的算法,并证明该算法。
分析:这是09年6月份百度的一道面试题,
从这道题我们可以看出百度对应聘者在算法方面有很高的要求。
68.把数组排成最小的数(数组、算法)。
题目:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。
例如输入数组{32, 321},则输出这两个能排成的最小数字32132。
请给出解决问题的算法,并证明该算法。
分析:这是09年6月份百度的一道面试题,
从这道题我们可以看出百度对应聘者在算法方面有很高的要求。
package com.interview.algorithm; import java.util.Arrays; import java.util.Comparator; public class MinCombinedNum68 { public String MinNumFromArray(String[] arr){ StringBuilder sb = new StringBuilder(); Comparator<String> c = new Comparator<String>(){ @Override public int compare(String o1, String o2) { // TODO Auto-generated method stub String first = o1+o2; String second = o2+o1; return first.compareTo(second); } }; Arrays.sort(arr, c); for(int i = 0; i < arr.length; i++){ sb.append(arr[i]); } return sb.toString(); } public static void main(String[] args) { // TODO Auto-generated method stub String[] arr = {"3","32","49","1","12","121"}; MinCombinedNum68 min = new MinCombinedNum68(); System.out.println(min.MinNumFromArray(arr)); } }
相关文章推荐
- 面试题之字符串反转
- (转)面向程序员的数据库访问性能优化法则
- 一位资深程序员大牛给予Java初学者的学习建议
- Java开发面试题
- 【好程序员特训营】- 路新艺-Java设计模式之单例模式
- [置顶]MySQL DBA面试全揭秘
- 有没有这样一种程序员写代码的利器
- 黑马程序员——ARC机制总结和用ARC建立模型
- 大牛的面试感悟(转) 没事多看看解决人生困惑!
- Java笔试面试题整理第七波
- java web面试
- 职业最低谷时的样子——北漂18年(55)
- 【程序员养生】:经历以及教训及生活日历
- seo面试题目百度搜索指令
- 嵌入式经典面试题
- 面试知识点
- 10+年程序员总结的20+条经验教训
- 阿里巴巴常考面试题及汇总答案
- 蜂窝教育iOS培训助我提升职业技能
- 我们都有病,创业真的容易上瘾。