c++ - start=i,end=j; 有什么区别?和开始=我;结束=j;
问题描述
问题是“1的最大连续系列”
给你一个 1 和 0 的数组。给你一个整数 M,表示允许的翻转次数。
找到在翻转时会产生最大连续系列 1 的零的位置。
我使用滑动窗口的方法来解决答案,但是我注意到如果我start=i;end=j;
写错了,但是start=i,end=j;
是对的。
它们的执行有什么区别?
vector<int> Solution::maxone(vector<int> &A, int B) {
int n=A.size();
int start=0,end=0,count=0,i,j;
for(i=0,j=0;j<n;){
if(B>=0 && !A[j++])
B--;
if(B<0 && !A[i++])
B++;
if(end-start<j-i)
start=i,end=j; // Here I get wrong ans if I write start=i;end=j;
}
vector<int> v;
while(start<end)
v.push_back(start++);
return v;
}
解决方案
如果start=i;end=j;
你得到
if(end-start<j-i)
start=i;
end = j;
因为另;
作end=j;
声明
start=i,end=j;
是一个语句,因为逗号是逗号运算符
解决方案:使用if() {}
推荐阅读
- javascript - 淘汰赛JS“价值”绑定在Edge中不起作用
- python - 将列表的项目分配给图的节点
- c# - JWT:身份验证后更改用户角色
- python - PyQT clicked.connect() 动作。一个命运的大量按钮,以及多个(迭代)功能
- javascript - 当我使用history.push 时,如何从一个组件获取状态变量到另一个组件?
- java - 异步 serviceTasks 的 Activiti Job Executor 问题(activiti >= 5.17)
- reactjs - 如何使用带有 (axios/classhooks) 的 map 函数来读取 API
- html - 如何使用 bootstrap col 类创建不相等的列
- python - 为什么得到 html content.txt 是空的?
- java - 使用获取请求发送查询?