public String largestNumber(int[] num) {
	 
		 if(num == null) return new String();

		 List<Integer> list = new ArrayList<Integer>();
		 for(int i: num){
			 list.add(i);
		 }
		 
		 Collections.sort(list, new Comparator<Integer>(){
			@Override
			public int compare(Integer o1, Integer o2) {
				String s1 = "" + o1 + o2;
				String s2 = "" + o2 + o1;
				
				return s2.compareTo(s1);		// reverse the order
			}
		});
		 
		StringBuilder sb = new StringBuilder();
		for(int n: list){
			sb.append(n);
		}
		if(sb.charAt(0)=='0') return "0";
		else return sb.toString();
		 
	 }