徐玄清的专栏

菜鸡一只

Algorithms—179.Largest Number

思路:比较粗暴,写一个比较方法,然后冒泡排序,最后合并。


public class Solution {
	public String largestNumber(int[] nums) {
		if (nums.length == 1) {
			return String.valueOf(nums[0]);
		}
		int temp = 0;
		for (int i = nums.length - 1; i > 0; i--) {
			for (int j = 0; j < i; ++j) {
				if (new Solution().compare(nums[j], nums[j + 1])) {
					temp = nums[j];
					nums[j] = nums[j + 1];
					nums[j + 1] = temp;
				}
			}
		}
		StringBuffer sb = new StringBuffer();
		if (nums[nums.length - 1] == 0) {
			return "0";
		}
		for (int i = nums.length - 1; i >= 0; i--) {
			sb.append(String.valueOf(nums[i]));
		}
		return sb.toString();
	}

	public boolean compare(int a, int b) {
		char[] ca=(String.valueOf(a)+String.valueOf(b)).toCharArray();
		char[] cb=(String.valueOf(b)+String.valueOf(a)).toCharArray();
		for (int i = 0; i < ca.length; i++) {
			if (ca[i]>cb[i]) {
				return true;
			}
			if (ca[i]<cb[i]) {
				return false;
			}
		}
		return false;
	}
}


耗时:392ms,发现同一个算法测试情况可能会相差100ms多。。。。真是瞎了狗眼。


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/corpsepiges/article/details/46834001
个人分类: leetcode
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

Algorithms—179.Largest Number

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭