zoukankan      html  css  js  c++  java
  • LC 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]
    

     

    Note:

    1. The number of given pairs will be in the range [1, 1000].

    Runtime: 48 ms, faster than 63.85% of C++ online submissions for Maximum Length of Pair Chain.

    排序然后two pointer。争取一次AC。

    class Solution {
    public:
      static bool cmp(const vector<int>& a, const vector<int>& b){
        return a[1] < b[1];
      }
      int findLongestChain(vector<vector<int>>& pairs) {
        sort(pairs.begin(),pairs.end(),cmp);
        int ret = 0, i = 0,j = 1;
        while(j < pairs.size()){
          if(pairs[i][1] < pairs[j][0]){
            ret++;
            i = j;
            j++;
          }else j++;
        }
        return ret+1;
      }
    };
  • 相关阅读:
    作业11
    作业10总结
    作业10
    作业9总结
    作业9
    作业8总结
    作业8
    实验7总结
    实验6总结
    史航第12次作业&总结
  • 原文地址:https://www.cnblogs.com/ethanhong/p/10179172.html
Copyright © 2011-2022 走看看