博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
求一组数字组成的最大整数三种解法
阅读量:4221 次
发布时间:2019-05-26

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

整理一下网上关于这道题和自己关于这道题的解法

方法一: 利用a+b和b+a进行比较选择其中数值较大的组合方式

public class Solution {    public void maxValueNum(int[] array) {        int len = array.length;        String maxValueStr = "";        for(int i=0;i
0) { swap(array, j, (j+1)); } } maxValueStr += array[len-1-i]; } System.out.println(maxValueStr); } public void swap(int[] array, int a, int b) { int tmp = array[a]; array[a] = array[b]; array[b] = tmp; }}main函数:public class Main { public static void main(String[] args) { Solution s = new Solution(); int[] array = {
195,23,56,235,7}; s.maxValueNum(array); }}运行结果为: 75623523195

方法二: 利用compare函数特性来进行排序选择

public class Solution1 {    public void maxValueNum(int[] array) {        int len = array.length;        String maxValueStr = "";        for(int i=0;i
0) { swap(array, j, (j+1)); } } maxValueStr += array[len-1-i]; } System.out.println(maxValueStr); } public int compare(int a, int b) { int count1 = 0; int count2 = 0; int middleNum1 = a; int middleNum2 = b; while(middleNum1 != 0) { count1++; middleNum1 /= 10; } while(middleNum2 != 0) { count2++; middleNum2 /= 10; } int num1 = (int) (a*Math.pow(10,count2)+b); int num2 = (int) (b*Math.pow(10,count1)+a); return num1 > num2 ? 1 : (num1 == num2 ? 0 : -1); } public void swap(int[] array, int a, int b) { int tmp = array[a]; array[a] = array[b]; array[b] = tmp; }}main函数:public class Main { public static void main(String[] args) { Solution1 s1 = new Solution1(); int[] array = {
195,23,56,235,7}; s1.maxValueNum(array); }}运行结果为: 75623523195

方法三: 利用贪心算法每次求最优值

public class Solution2 {    public void maxValueNum(int[] array) {        int len = array.length;        String maxValueStr = "";        for(int i=0;i
0) { swap(array, j, (j+1)); } } maxValueStr += array[len-1-i]; } System.out.println(maxValueStr); } public void swap(int[] array, int a, int b) { int tmp = array[a]; array[a] = array[b]; array[b] = tmp; }}main函数:public class Main { public static void main(String[] args) { Solution2 s2 = new Solution2(); int[] array = {
195,23,56,235,7}; s2.maxValueNum(array); }}运行结果为: 75623523195

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

你可能感兴趣的文章
js获取url参数值的两种方式详解
查看>>
java中System.getProperty()方法详解
查看>>
MyEclipse设置默认注释的格式
查看>>
同一服务器部署多个tomcat时的端口号修改详情
查看>>
常用正则表达式集锦
查看>>
Spring定时器的时间表达式
查看>>
fastdfs简介
查看>>
主键和唯一索引的区别
查看>>
linux下使用yum安装gcc详解
查看>>
aclocal安装依赖的库
查看>>
String和常量池值的变化
查看>>
FastDFS 安装及使用详解
查看>>
ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)解决方案
查看>>
Host 'XXX' is not allowed to connect to this MySQL server解决方案
查看>>
corosync pacemaker 配置高可用集群(一)
查看>>
5种IO模型、阻塞IO和非阻塞IO、同步IO和异步IO
查看>>
nginx(一) nginx详解
查看>>
nginx(二) nginx编译安装 及 配置WEB服务
查看>>
nginx(三) nginx配置:反向代理 负载均衡 后端健康检查 缓存
查看>>
nginx(四) nginx+keepalived 实现主备+双主热备模型的高可用负载均衡代理服务
查看>>