查找矩阵中只有'0'元素的第一行的最佳方法?
An optimal way of finding the first row with only '0' elements in matrix?
我不会深究:我有一个编程任务的优化作业,我需要确认我的解决方案是正确的。
接下来的任务是:得到一个具有随机行数的矩阵,并且每行具有不同的长度。我们得到的矩阵中有哨兵:每行末尾都有一个-1值。矩阵的最后一行以-1值开头。矩阵的每隔一个值都是正整数和0。
任务是找到第一行,它只有0个元素(不包括sentinel),并将其写入-此外,我必须只使用2个变量、一个while
循环和其中的一个条件。写出来可能会有条件。
总的来说,代码必须具有这样的通用形式(不包括矩阵的定义:
//'sor' means row, 'oszlop' means coloumn
int sor, oszlop;
while(){
if(){
}else{
};
}
if (){
cout <<"We couldn't find a row with only 0 elements."<<end;
}else{
cout <<"We could, and this is:"<<end;
}
这是我的代码(只有main()
内部的部分,也不包括矩阵的定义):
int sor=0, oszlop=0;
while (x[sor][oszlop]!=-1){
if (x[sor][oszlop]==0){
++oszlop;
}else{
++sor;
oszlop=0;
}
}
if (oszlop==0){
cout <<"We couldn't find a row with only 0 elements."<<end;
}else{
cout <<"We could, and this is:"<<end;
}
代码跳过无效的列,直到到达末尾;或者,如果它能到达任何行的末尾,它就会退出——但只有当它的所有元素都为0时,它才能退出。
在找到-1的情况下,它肯定会退出,但oszlop
的值决定了我们是否找到了有效行,并且我们退出是因为到达了矩阵的末尾。
我用随机矩阵测试了它,但我仍然不确定,所以我需要你的确认。
我做得好吗?
您是否尝试在唯一有效行为最后一行的矩阵上测试它?例如,
[-1;
-1 0-1]
或者
[1-1;
-1 0-1]
如果每一行都必须有-1以外的元素。
相关文章:
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- 在C++中向零方向近似的最佳方法
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 检测win32服务创建和删除的最佳方法
- 在C++中样板"冷/never_inline"错误处理技术的最佳方法是什么?
- 在 c++ 中对类中的 c 字符串动态数组进行排序的最佳方法是什么?
- 将线程中的数据存储到全局容器的最佳方法?
- 将一系列整数放入类的最佳方法是什么?
- 在派生类中使用基类的私有成员变量的最佳方法
- 在 C++ 中将非指定类型作为参数传递的最佳方法?
- Qt - QVector 和模型视图 - 从列表视图获取自定义类的最佳方法是什么?
- 使用 Git 处理 C++ Visual Studio 2019 解决方案的外部依赖项源代码管理的最佳方法是什么?
- 比较两个节点坐标的最佳方法是什么?
- 在nodejs中使用本机代码的最佳方法是什么?
- 将 pybind11 绑定标记为已弃用的最佳方法
- C++:将向量传递到构造函数以创建成员变量的最佳方法?
- C++中变量混叠的最佳方法
- 转换/映射方法最佳做法