面试题 33
来源:互联网 发布:excel多表格数据联动 编辑:程序博客网 时间:2024/06/09 22:00
1 题目描述
输入一个整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出所有数字中最小的一个。例如输入数组 {3,32,321},则打印出这 3 个数字能排成的最小数字 321323.
2 算法描述
1 将 m 和 n 进行和合并,如 mn < nm 合并方式为 mn
2 数字在合并的时候会出现大数问题,我们应该将 整数数组转换成字符串数组进行操作
3 代码实现 java
public class PrintMinNumber { public static void main(String[] args) { int[] arrays=new int[]{1,2,3,4,5,1}; PrintMinNumber(arrays); } private static void PrintMinNumber(int[] arrays) { if(arrays==null || arrays.length<=0) return; //将证书数组转换成字符串数组 String[] strs=new String[arrays.length]; StringBuilder result= new StringBuilder(); for(int i=0;i<strs.length;i++){ strs[i]=String.valueOf(arrays[i]); } result.append(strs[0]); for(int i=1;i<strs.length;i++){ compare(result,strs[i]); } System.out.println(result.toString()); } private static void compare(StringBuilder result, String string) { String resultString=result.toString(); for(int i=0;i<Math.min(resultString.length(), string.length());i++){ if(resultString.charAt(i)>string.charAt(i)){ result.insert(0, string); return; }else if(resultString.charAt(i)<string.charAt(i)){ result.append(string); return; } } if(resultString.length()>string.length()){ result.insert(0, string); }else{ result.append(string); } }}
0 0
- 面试题 33
- 剑指offer面试题33
- 剑指Offer面试题33
- 面试题....
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- eclipse导入本地项目SVN信息丢失的问题
- openfire删除
- 分析产品数据时需要注意哪些坑?
- django signal
- Proxy
- 面试题 33
- ios9 - (NSUInteger)supportedInterfaceOrientations 警告
- 黑马程序员-Java基础学习第七天总结
- 关联jar包的源代码
- jboss部署web项目
- 转化流和IO流操作规律
- 关于Genymotionmotion的一些问题
- UIWebView的用法
- javax.servlet.jsp cannot be resolved to a type