646. Maximum Length of Pair Chain
646. Maximum Length of Pair Chain You are given n pairs of numbers. In every pair, the first number is always smaller than the second number. Now, we define a pair (c, d) can follow another pair (a, b) if and only if b < c. Chain of pairs can be formed in this fashion. Given a set of pairs, find the length longest chain which can be formed. You needn't use up all the given pairs. You can select pairs in any order. Example 1: Input: [[1,2], [2,3], [3,4]] Output: 2 Explanation: The longest chain is [1,2] -> [3,4] class Solution{ public int findLongestChain(int[][] pairs){ Arrays.sort(pairs, (a, b) -> a[0] - b[0]); int n = pairs.length; int[] dp = new int[n]; Arrays.fill(dp, 1); int max = 0; for(int i = 1; i < n; i++){ for(int j = 0; j < i; j++){ if(pairs[j][1] < pairs[i][0]){ dp[i] = Math.max(dp[i], dp[j] + 1); } } max = Math.max(dp[i], max); } return max; } } Notes: Sort first, and then dp // lambda function Arrays.sort(dogArray, new Comparator<Dog>(){ @Override public int compare(Dog o1, Dog o2){ return o1.getWeight() - o2.getWeight(); } }); Arrays.sort(dogArray, (m, n) -> m.getWeight() - n.getWeight());
posted on 2018-09-20 18:08 猪猪🐷 阅读(98) 评论(0) 收藏 举报
                    
                
                
            
        
浙公网安备 33010602011771号