5-003-(LeetCode- 34) 在排序数组中查找元素的第一个和最后一个位置

Posted arctic_fox

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5-003-(LeetCode- 34) 在排序数组中查找元素的第一个和最后一个位置相关的知识,希望对你有一定的参考价值。

1. 题目

2. 解法

3. 总结

LeetCode 646 最长数对链[贪心 自定义排序] HERODING的LeetCode之路


解题思路:
从逆向思维角度出发,最后的最长数对链的第二个数一定是顺序排列的(当然第一个数也是顺序排列的),那么我们只需要按照第二个数的大小从小到大排序即可,这种情况可以保证第一个数绝对是最大贪心序列的第一个数,然后从中找子集,代码如下:

bool cmp(vector<int>& p1, vector<int>& p2) 
    return p1[1] < p2[1];


class Solution 
public:
    int findLongestChain(vector<vector<int>>& pairs) 
        int n = pairs.size();
        sort(pairs.begin(), pairs.end(), cmp);
        int res = 1, temp = pairs[0][1];
        for(int i = 1; i < n; i ++) 
            if(pairs[i][0] > temp) 
                res ++;
                temp = pairs[i][1];
            
        
        return res;
    
;

以上是关于5-003-(LeetCode- 34) 在排序数组中查找元素的第一个和最后一个位置的主要内容,如果未能解决你的问题,请参考以下文章

34. 在排序数组中查找元素的第一个和最后一个位置

LeetCode692. 前K个高频单词 / 剑指 Offer 50. 第一个只出现一次的字符 / 剑指 Offer 51. 数组中的逆序对 / 2. 两数相加

LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置 | Python

LeetCode 34 在排序数组中查找元素的第一个和最后一个位置

[leetcode] 34. 在排序数组中查找元素的第一个和最后一个位置(Java)

Python描述 LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置