剑指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
运行截图: