已经忘记了何时记下的笔记,出自哪里。也不是什么高级技巧,但每次看到时,都会提醒我自己。以后写程序时要多思考一下,会不会有更好的方法实现这个功能?也许在一些不注意的地方,可以做到更优。
以下这两段代码,可以实现相同的功能(不要纠结于这段代码中的变量是否定义),具体适合什么样的情景我也不想做什么解释,这只是给自己和一些忽略这个问题的人一个提醒。
eg.1:
int temp=0, ans=0;
for(int i=0;i<n;i++)
{
tmp+=w[i];
if(tmp<=c)
ans ++;
else
break;
}
eg.2:
int tmp=0,ans=0;
for(int i=0;i<n;i++)
{
tmp += w[i];
if(tmp>=c)
{
if(tmp==c)
ans = i+1;
else
ans = i;
break;
}
}
eg.1中for循环中的if内的语句,每次循环都要执行;
eg.2中for循环中的if内的语句只执行了一次。