(一)该语句可用于清空数组,头文件为c++的<iostream>
memset(a,0,sizeof(a))
(二)使用pow开三次方是利用浮点数使用指数进行开方,在计算时精度损失较大,在数值较大时,会产生精度不够产生误差。
解决办法:使用c++ <math> 库中的cbrt函数,
#include<math>
int x;
cbrt(x);
(三)数组的运算比变量的++优先级高,故
a[b[i++]]--;
可实现数组a以a[b[i]]的值进行先行计算,然后再使i++,此技巧可压缩代码行数,避免冗长出错。
判断子序列
#include<stdio.h>
int main()
{
int n , m ,x;
int a[100005]={0},b[100005]={0};
scanf("%d %d",&n,&m);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(int j=0;j<m;j++)
{
scanf("%d",&b[j]);
}
int i=0,j=0;
while(i<n&&j<m)
{
if(a[i]==b[j])i++;
j++;
}
if(i==n)printf("Yes\n");
else printf("No\n");
return 0;
}