剑指 Offer 04. 二维数组中的查找
class Solution {
public:
bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {
int i = matrix.size() - 1, j = 0;
if(i == -1)return false;
while(i >= 0 && j < matrix[0].size()){
if(matrix[i][j] > target){
i--;
}else if(matrix[i][j] < target){
j++;
}else{
return true;
}
}
return false;
}
};
剑指 Offer 50. 第一个只出现一次的字符
class Solution {
public:
char firstUniqChar(string s) {
unordered_map<char, int> m;
for(auto c : s){
m[c]++;
}
for(auto c : s){
if(m[c] == 1)return c;
}
return ' ';
}
};
剑指 Offer 11. 旋转数组的最小数字
题目链接:[剑指 Offer 11. 旋转数组的最小数字](https://leetcode.cn/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof/description/?envType=study-plan&id=lcof&plan=lcof&plan_progress=xhbstuci)
class Solution {
public:
int minArray(vector<int>& numbers) {
int left = 0;
int right = numbers.size() - 1;
while(left < right){
int mid = left + (right - left) / 2;
if(numbers[mid] > numbers[right]){
left = mid + 1;
}else if(numbers[mid] < numbers[right]){
right = mid;
}else{
right--;
}
}
return numbers[left];
}
};