一:力扣485. 最大连续 1 的个数
1.题目:
2.思路分析
先设定两个变量,一个变量(ret_e)用来存连续的1的个数,当nums[i]为0时,该变量就置为0,当nums【i】为1时,再重新++;再设另一个变量(ret),作为返回值,当ret-e++时,如果ret<ret_e就把ret_e里面的值赋给ret
这样最后ret存的就是最大的连续的值
3.代码
int findMaxConsecutiveOnes(int* nums, int numsSize)
{
int i = 0;
int ret = 0;//返回值
int ret_e = 0;//暂存值,与返回值作比较
for (i = 0; i < numsSize; i++)
{
if (nums[i] == 1)
{
ret_e++;//存连续的1的个数
if (ret_e > ret)
ret = ret_e;
}
else
ret_e = 0;
}
return ret;
}
二:HJ31 单词倒排
1.题目
2.思路
重点就在于把每一个用非字母隔开的字符串看作一小块,再把每一小块放在一个数组中,再倒序输出数组
3.代码
int main()
{
char s[100][100] = { '\0' };
int i = 0;
char c;
int cont = 0;
int num = 0;
while ((c = getchar()) != EOF)
{
if (isalpha(c))
{
s[cont][num++] = c;
}
else
{
cont++;
num = 0;
}
}
for (i = cont - 1; i >= 0; i--)
{
printf("%s ", s[i]);
}
return 0;
}
三:HJ37 统计每个月兔子的总数
1.题目:
2.思路
3.代码
int main()
{
int n = 0;
scanf("%d",&n);
int arr[35] = {0};
arr[1] = 1;
arr[2] = 1;
for(int i =3; i<=n;i++)
{
arr[i] = arr[i-1]+arr[i-2];
}
printf("%d",arr[n]);
return 0;
}