- 搜索旋转排序数组
int search(int* nums, int Size, int target){
for(int i = 0; i < Size; i++)
{
if(nums[i] == target)
return i;
}
return -1;
- 搜索旋转排序数组 II
bool search(int* nums, int Size, int target){
for(int i = 0; i < Size; i++)
{
if(nums[i] == target)
return true;
}
return false;
}
- 寻找旋转排序数组中的最小值
int findMin(vector<int>& nums) {
int low = 0;
int high = nums.size() - 1;
while (low < high) {
int pivot = low + (high - low) / 2;
if (nums[pivot] < nums[high]) {
high = pivot;
}
else {
low = pivot + 1;
}
}
return nums[low];
}
- 爬楼梯
int climbStairs(int n) {
if(n==1) return 1;
if(n==2) return 2;
int dp[n+1];
dp[0]=0;
dp[1]=1;
dp[2]=2;
for(int i=3;i<=n;++i){
dp[i]=dp[i-1]+dp[i-2];
}
return dp[n];
}
5.斐波那契数
class Solution {
public int fib(int n) {
int dp[]=new int[n+1];
dp[0]=0;
if(n<2)return n;
dp[1]=1;
for(int i=2;i<=n;i++){
dp[i]=dp[i-1]+dp[i-2];
}
return dp[n];
}
}
- 第 N 个泰波那契数
int tribonacci(int n) {
long t=0,t1=1,t2=1,res=0;
if(n==1||n==2)return 1;
for(int i=3;i<=n;i++)
{
res=t+t1+t2;
t=t1;
t1=t2;
t2=res;
}
return res;
}