[leetcode-354]Russian Doll Envelopes(java)

来源:互联网 发布:淘宝回复差评专业术语 编辑:程序博客网 时间:2024/05/21 05:57

思路:首先对Envelope数组进行排序;然后剩下的就是一个二重迭代的过程了。

public class Solution {    class Envelope{        int width;        int height;        Envelope(int width,int height){            this.width = width;            this.height = height;        }    }    public int maxEnvelopes(int[][] envelopes) {        int length = envelopes.length;        Envelope[] sortedEnvelopes = new Envelope[length];        int index = 0;        for(int[] num:envelopes){            sortedEnvelopes[index++] = new Envelope(num[0],num[1]);        }        Arrays.sort(sortedEnvelopes,new Comparator<Envelope>(){            public int compare(Envelope e1,Envelope e2){                if(e1.width != e2.width)                    return e1.width - e2.width;                return e1.height - e2.height;            }        });        int[] count = new int[length];        int maxCount = 0;        for(int i = 0;i<length;i++){            Envelope cur = sortedEnvelopes[i];            count[i] = 1;            for(int j = i-1;j>=0;j--){                Envelope tmp = sortedEnvelopes[j];                if(tmp.width < cur.width && tmp.height < cur.height && count[j]+1 > count[i]){                    count[i] = count[j]+1;                }            }            if(count[i] > maxCount)                maxCount = count[i];        }        return maxCount;    }}
0 0
原创粉丝点击