如何减少花费的时间
how to reduce time taken
#include <iostream>
using namespace std;
void rotateByOne(int arr[], int n)
{
int x = arr[0];
for (int y = 0; y < n - 1; y++)
{
arr[y] = arr[y + 1];
}
arr[n - 1] = x;
}
int main()
{
int n, d;
cin >> n >> d;
int arr[n];
for (int i = 0; i < n; i++)
{
cin >> arr[i];
}
while (d != 0)
{
rotateByOne(arr, n);
d--;
}
for (int i = 0; i < n; i++)
{
cout << arr[i] << " ";
}
return 0;
}
我如何减少这段代码的编译时间?这段代码是为了获得n个整数的数组输入并将数组左旋转d次而编写的。。。。。。。我在黑客等级和极客中发现了这一点,我从这段代码中得到了正确的输出,但问题是时间。
如果目标只是编写旋转数组,则不需要修改数组或创建另一个数组。
注意:使用两个循环而不是一个循环可以避免使用模运算。
#include <iostream>
#include <vector>
int main() {
std::vector<int> arr = {0, 1, 2, 3, 4, 5, 6, 7};
int n = arr.size();
int d = 3;
for (int i = d; i < n; ++i) {
std::cout << arr[i] << " ";
}
for (int i = 0; i < d; ++i) {
std::cout << arr[i] << " ";
}
std::cout << "n";
return 0;
}
学习使用现成的算法和阅读文档。
#include<iostream>
#include<vector>
#include<algorithm>
#include<iterator>
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int n, d;
std::cin >> n >> d;
std::vector<int> v;
v.reserve(n);
std::copy_n(std::istream_iterator<int>{std::cin}, n, std::back_inserter(v));
std::rotate_copy(v.begin(), v.begin() + d, v.end(), std::ostream_iterator<int>{std::cout, " "});
return 0;
}
https://wandbox.org/permlink/mGciaeJqiH5PjGm1
相关文章:
- 在已经使用Git的情况下减少编译时间
- 如何减少花费的时间
- 如何减少代码的运行时间以对齐文本?
- DLLexport 类模板实例(专用化),减少了仅标头模板库的编译时间
- 需要减少我的C++代码的执行时间
- 系统时间从何而来?
- 如何减少编译时间:在包含未触及的头文件的情况下
- 如果我对循环进行以下更改,执行时间是否会减少
- 如何减少算法执行时间
- 尝试减少执行时间,但失败
- 单元测试 - 仅在"int main()"左右重新编译以减少编译时间
- 减少 std::正则表达式编译时间 C++
- 使用友元类减少编译时间和依赖关系
- 更好地线程化代码以减少计算时间的方法
- 如果将功能的非常简单的定义移动到.cpp,则编译时间的减少是多少
- 可以cudadeVicessyngronize减少模拟时间
- 如何减少 C++ 中的查找时间
- 使用未命名的名称空间会减少链接时间吗
- 使用c++减少两个映射的处理时间
- 如何减少以下代码的执行时间