设有n个正整数,将他们连接成一排,组成一个最大的多位整数。
2017-09-18 11:30
260 查看
题目描述:
![](http://img.blog.csdn.net/20170918113000199?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXl5d3d3NjY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
这个题不难,但是却折腾了,很久,一看题目就想到了字符串排序,然后就傻傻的直接排序了,但是一直不通过,然后才发现前缀捣鬼。。。
解题思路:
判断A,B大小的依据:如果 A+B>B+A 那么 A>B, 否则B>A
代码:
这个题不难,但是却折腾了,很久,一看题目就想到了字符串排序,然后就傻傻的直接排序了,但是一直不通过,然后才发现前缀捣鬼。。。
解题思路:
判断A,B大小的依据:如果 A+B>B+A 那么 A>B, 否则B>A
代码:
import java.util.Scanner; import java.util.Arrays; public class Main { public static void main(String[] args) { Scanner s=new Scanner(System.in); String ns=s.nextLine(); int n=Integer.parseInt(ns); String data=s.nextLine(); String D[]=data.split(" ",n); for(int i=0;i<n-1;i++){ for(int j=i+1;j<n;j++){ if((D[i]+D[j]).compareTo(D[j]+D[i])<0){ String temp=D[i]; D[i]=D[j]; D[j]=temp; } } } String out=""; for(int i=0;i<n-1;i++){ out=out+D[i]; } out=out+D[n-1]; System.out.print(out); } }
相关文章推荐
- 设有n个正整数,将他们连接成一排,组成一个最大的多位整数
- 设有n个正整数,将他们连接成一排,组成一个最大的多位整数
- 设有n个正整数,将他们连接成一排,组成一个最小的多位整数
- java题: 设有n个正整数,将它们联接成一排,组成一个最大的多位整数。例如:N=3时,3个整数13、312、343联成的最大整数为:34331213;
- 求n个正整数连接成一排,组成一个最大的多位整数
- 设有n个正整数 (n<=20), 将它们连接成一排, 组成一个最大的多位整数
- Java实现:n个正整数,将它们连接成一排,组成一个最大的多位整数。(输入:n(n个整数),依次输入n个整数)
- n个正整数,联接成一排,组成一个最小(最大)的多位整数
- n个正整数,联接成一排,组成一个最大(最小)的多位整数 python
- 设有n个正整数,将它们联接成一排,组成一个最小的多位整数
- 设有n个正整数(n<=20),将它们联成一排,组成一个最大的多位数
- n个正整数联接成一排,组成一个最小的多位整数
- n个正整数联接成一排,组成一个最小的多位整数
- 有一个数组,由正整数、负整数、零组成,求和最大的连续子数组
- 问题描述 已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。 输入格式 输入一个正整数N。 输出格式 输出一个整数,表示你找到的最小公倍数。 样例输入 9 样例输出 5
- 给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数。
- 贪心算法——n个数连接得到最小或最大的多位整数
- 谷歌笔试题--给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数。
- 给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数。
- 给定一个数组,元素都是正整数,要求返回这些元素所组成的最大数