zoukankan      html  css  js  c++  java
  • 179. Largest Number

    一开始知道是PQ之类的,然后在怎么比较上难住了。。(怎么写PQ里的compare())

    一位一位比较是可以的,但是特殊情况很难处理,比如如何比较121 12,和128 12.

    然后看答案发现一刷用的办法是组合成AB或者BA比较,年轻时的我真是太机智了。。

    最后就是0的处理,要处理leading 0s.

    public class Solution 
    {
        public String largestNumber(int[] nums) 
        {
            if(nums.length == 0) return "";
            
            
            PriorityQueue<Integer> pq = new PriorityQueue<Integer>(new Comparator<Integer>() 
            {
               public int compare(Integer a, Integer b)
               {
                   String s1 = Integer.toString(a);
                   String s2 = Integer.toString(b);
                   
                   String A = s1+s2;
                   String B = s2+s1;
                   
                   Long la = Long.valueOf(A);
                   Long lb = Long.valueOf(B);
                   
                   if(la > lb) return -1;
                   else if( la == lb) return 0;
                   else return 1;
               }
            });
            
            for(int I0_0I: nums) pq.add(I0_0I);
            
            
            
            String res = new String();
            
            while(!pq.isEmpty() && pq.peek() == 0) pq.poll();
            
            if(pq.isEmpty()) return "0";
            
            
            
            while(!pq.isEmpty()) res+= pq.poll();
            
            return res;
        }
    }
    

    0 0||难过。。二刷居然卡住了

  • 相关阅读:
    LDA的整体流程
    java中字符串的用法
    verification Code
    properties
    Hash
    substring的问题
    LDA和PLSA的区别
    Step By Step(Lua环境)
    Step By Step(Lua调用C函数)
    Step By Step(Lua弱引用table)
  • 原文地址:https://www.cnblogs.com/reboot329/p/5877839.html
Copyright © 2011-2022 走看看