目录
搜索旋转排序数组
cpp
class Solution {
public:
int search(vector<int>& nums, int target) {
for(int i=0;i<nums.size();i++){
if(nums[i]==target)return i;
}
return -1;
}
};
搜索旋转排序数组||
cpp
class Solution {
public:
bool search(vector<int>& nums, int target) {
for(int i=0;i<nums.size();i++){
if(nums[i]==target)return true;
}
return false;
}
};
寻找旋转排序中的数组最小值
cpp
class Solution {
public:
int findMin(vector<int>& nums) {
int res=INT_MAX;
for(int i=0;i<nums.size();i++){
res=min(res,nums[i]);
}
return res;
}
};
爬楼梯
cpp
class Solution {
public:
int climbStairs(int n) {
if(n<=3)return n;
int a=1;
int b=2;
for(int i=3;i<=n;i++){
int t=a+b;
a=b;
b=t;
}
return b;
}
};
斐波那契数
cpp
class Solution {
public:
int fib(int n) {
if(n<=1)return n;
int a=0;
int b=1;
for(int i=2;i<=n;i++){
int t=a+b;
a=b;
b=t;
}
return b;
}
};
第N个泰波那契数
cpp
class Solution {
public:
int tribonacci(int n) {
if(n==0)return 0;
if(n==1)return 1;
if(n==2)return 1;
int a=0;
int b=1;
int c=1;
for(int i=3;i<=n;i++){
int C=a+b+c;
int B=c;
int A=b;
a=A;
b=B;
c=C;
}
return c;
}
};
差的绝对值为K的数对数目
cpp
class Solution {
public:
int countKDifference(vector<int>& nums, int k) {
int res=0;
for(int i=0;i<nums.size();i++){
for(int j=i+1;j<nums.size();j++){
if(abs(nums[i]-nums[j])==k)res++;
}
}
return res;
}
};
猜数字
cpp
class Solution {
public:
int game(vector<int>& guess, vector<int>& answer) {
int res=0;
for(int i=0;i<3;i++){
if(guess[i]==answer[i])res++;
}
return res;
}
};
拿硬币
cpp
class Solution {
public:
int minCount(vector<int>& coins) {
int res=0;
for(int i=0;i<coins.size();i++){
if(coins[i]%2==1){
res++;
coins[i]--;
}
res+=coins[i]/2;
}
return res;
}
};
山峰数组的峰顶索引
cpp
class Solution {
public:
int peakIndexInMountainArray(vector<int>& arr) {
int left=1;
int right=arr.size()-2;
int res=0;
while(left<=right){
int mid=left+((right-left)>>1);
if(arr[mid]<arr[mid+1]){
left=mid+1;
}
else if(arr[mid]>arr[mid+1]){
right=mid-1;
res=mid;
}
}
return res;
}
};
