64,199
社区成员
发帖
与我相关
我的任务
分享搜索旋转排序数组:
遍历数组搜索
int search(int* nums, int numsSize, int target){
int i;
for(i=0;i<numsSize;i++)
{
if(nums[i]==target)return i;
}
return -1;
}
搜索旋转排序数组 II:
bool search(int* nums, int numsSize, int target){
int i;
for(i=0;i<numsSize;i++)
{
if(target==nums[i])return true;
}
return false;
}
寻找旋转排序数组中的最小值:
int findMin(int* nums, int numsSize){
int min=nums[0],i;
for(i=1;i<numsSize;i++)
{
if(min>nums[i])min=nums[i];
}
return min;
}
爬楼梯:
int climbStairs(int n){
int f[256];
int i ;
f[0]=f[1]=1;
for(i=2;i<=n;i++)
{
f[i]=f[i-1]+f[i-2];
}
return f[n];
}
斐波那契数:
int fib(int n){
int f[31];
f[0]=0;
f[1]=1;
int i;
for(i=2;i<=n;i++)
{
f[i]=f[i-1]+f[i-2];
}
return f[n];
}
第 N 个泰波那契数:
int tribonacci(int n){
int t[255];
t[0]=0;
t[1]=1;
t[2]=1;
for(int i=3;i<=n;i++)
{
t[i]=t[i-1]+t[i-2]+t[i-3];
}
return t[n];
}
差的绝对值为 K 的数对数目:
int countKDifference(int* nums, int numsSize, int k){
int i,j;
int count=0;
for(i=0;i<numsSize-1;i++)
{
for(j=i+1;j<numsSize;j++)
{
if(abs(nums[i]-nums[j])==k)count++;
}
}
return count;
}
猜数字:
int game(int* guess, int guessSize, int* answer, int answerSize){
int count=0;
for(int i=0;i<3;i++)
{
if(guess[i]==answer[i])count++;
}
return count;
}
拿硬币:
int minCount(int* coins, int coinsSize){
int i;
int count=0;
for(i=0;i<coinsSize;i++)
{
if(coins[i]%2!=0)coins[i]++;
count+=coins[i]/2;
}
return count;
}