剑指Offer-第5天 查找算法(中等)


第一题

题目链接:https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/

个人题解:因为矩阵元素的特殊性,因此可以一行一行或者一列一列查找

代码:

class Solution {
public:
    bool findNumberIn2DArray(vector>& matrix, int target) {
        if(matrix.size()==0 || matrix[0].size()==0) return false;

        int row=0,col=matrix[0].size()-1;

        while(row=0){
            int num=matrix[row][col];
            if(num==target) return true;
            else if(num>target) col--;
            else row++;
        }
        return false;
    }
};

运行结果:

第二题

题目链接:https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof/

个人题解:二分查找

代码:

class Solution {
public:
    int minArray(vector& numbers) {
        int le=0,ri=numbers.size()-1;
        while(lenumbers[ri]) le=mid+1;
            else ri--;
        }
        return numbers[le];
    }
};

运行截图:

第三题

题目链接:https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof/

个人题解:哈希表

代码

class Solution {
public:
    char firstUniqChar(string s) {
        unordered_map hash;
        for(auto ch:s) hash[ch]++;
        for(int i=0;i

运行截图:

相关