博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA代码—算法基础:最大数问题
阅读量:4041 次
发布时间:2019-05-24

本文共 1721 字,大约阅读时间需要 5 分钟。

求解最大数问题

问题描述:

给定一个非负整数形成的数组,对数组中的数组元素进行排列组合之后,产生一个最大的整数,返回结果。

例如:给定一个非负数的整数数组 {3, 30, 34, 5, 9},能够组合成的最大整数为:9534330。

注意:返回的结果使用字符串表示,因为数值很大,可能会超出整数的表示范围。

算法设计:

这里会用到JAVA SE8 中的 Comparator接口。Comparator 是比较器;我们若需要控制某个类的次序,可以建立一个 “该类的比较器” 来进行排序。

package com.bean.basic;import java.util.Arrays;import java.util.Comparator;public class LargestNumberDemo {    /*     * 定义一个内部类 LargeNumberComparator,实现Comparator接口,重写了compare方法。     * */    private static class LargerNumberComparator implements Comparator
{ @Override public int compare(String a, String b) { String order1 = a + b; String order2 = b + a; return order2.compareTo(order1); } } /* * 构造最大数的算法 * */ public static String largestNumber(int[] nums) { // Get input integers as strings. String[] asStrs = new String[nums.length]; for (int i = 0; i < nums.length; i++) { asStrs[i] = String.valueOf(nums[i]); } // Sort strings according to custom comparator. Arrays.sort(asStrs, new LargerNumberComparator()); // If, after being sorted, the largest number is `0`, the entire number // is zero. if (asStrs[0].equals("0")) { return "0"; } // Build largest number from sorted array. String largestNumberStr = new String(); for (String numAsStr : asStrs) { largestNumberStr += numAsStr; } return largestNumberStr; } public static void main(String[] args) { // TODO Auto-generated method stub int[] arrayDemo= {
3, 30, 34, 5, 9 }; String ANSWER = largestNumber(arrayDemo); System.out.println("ANSWER = "+ANSWER); }}

(完)

转载地址:http://zgvdi.baihongyu.com/

你可能感兴趣的文章
flutter-实现圆角带边框的view(android无效)
查看>>
android 代码实现圆角
查看>>
flutter-解析json
查看>>
android中shader的使用
查看>>
java LinkedList与ArrayList迭代器遍历和for遍历对比
查看>>
drat中构造方法
查看>>
JavaScript的一些基础-数据类型
查看>>
JavaScript基础知识(2)
查看>>
转载一个webview开车指南以及实际项目中的使用
查看>>
android中对于非属性动画的整理
查看>>
一个简单的TabLayout的使用
查看>>
ReactNative使用Redux例子
查看>>
Promise的基本使用
查看>>
coursesa课程 Python 3 programming 统计文件有多少单词
查看>>
coursesa课程 Python 3 programming 输出每一行句子的第三个单词
查看>>
Returning a value from a function
查看>>
coursesa课程 Python 3 programming Functions can call other functions 函数调用另一个函数
查看>>
coursesa课程 Python 3 programming The while Statement
查看>>
course_2_assessment_6
查看>>
coursesa课程 Python 3 programming course_2_assessment_7 多参数函数练习题
查看>>