已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。
2天前关闭。
Improve this question
请参阅给定的2个代码,将矩阵的元素更新为0:
for(int i = 0; i < rows; i++){
for(int j = 0; j < cols; j++){
if(matrix[i][j] != 0) matrix[i][j] = 0;
}
}
第二个:
for(int i = 0; i < rows; i++){
for(int j = 0; j < cols; j++){
matrix[i][j] = 0;
}
}
你能告诉我哪一个更好用吗?
根据我的新手知识,第二个应该是一个更好的代码,因为我们说编译器无论如何都要将其更新为0.(rowscols times)但根据leet代码,第一个代码更好,我们要求编译器检查它是否为非零,并在它为非零时更新为0.(rowscols times logical statement + updating every non-zero element to zero).
是的,到现在为止,你可能已经知道我还没有研究过空间和时间复杂度,你能简单地说明一下吗?
1条答案
按热度按时间mf98qq941#
它们具有相同的时间和空间复杂度。
如果你问哪一个更快,这个问题一般无法回答:它取决于平台、编译器、硬件等的细节。基本上,它取决于条件语句是否比赋值语句慢,以及编译器实际生成的是什么代码。