尝试使用堆栈按时钟方向旋转阵列时出错
getting error while trying to rotate array clock wise using stack
给定一个大小为N的未排序数组arr[],将其旋转D个元素(顺时针(。
输入输入的第一行包含T,表示测试用例的数量。每个测试用例的第一行包含两个空格分隔的元素,N表示数组的大小,整数D表示旋转的数字大小。后续行将是N个空间分离的阵列元件
输出对于每个测试用例,在新行中,输出旋转阵列
示例输入1 2 3 4 5
输出3 4 5 1 2
#include <iostream>
#include <stack>
using namespace std;
void rotate(int *a,int s,int r) {
stack<int> st;
for(int i=0;i<r;i++) {
st.push(a[i]);
}
for(int j=r;j<s;j++) {
a[j-r] = a[j];
}
for(int k=s-1;k>r+1;k--) {
a[k] = st.top();
st.pop();
}
for(int l=0;l<s;l++) {
cout<<a[l]<<" ";
}
}
int main() {
//code
int T;
cin>>T;
while(T--) {
int N,r;
cin>>N>>r;
int A[N];
for(int i=0;i<N;i++) {
cin>>A[i];
}
rotate(A,N,r);
cout<<endl;
}
return 0;
}
我遵循了你的逻辑,你的回填部分似乎有问题。
for(int k=s-1;k>=s-r;k--) { // change k>r+1 to k>=s-r
a[k] = st.top();
st.pop();
}
对不起,对于rotate函数中的循环,int第三个应该有k>s-r-1
相关文章:
- 使用Unreal C++获取VR耳机的世界位置/方向
- 与互斥锁相比,旋转锁可以保证上下文切换
- 绘制旋转的三角形
- 旋转模型矩阵时的形状失真
- 四边形的 2D 旋转
- 在C++中向零方向近似的最佳方法
- 垂直方向的 Gtk3+ 旋转按钮 (c/c++)
- 发布旋转矩阵(openGL/glm)
- 顺时针迭代旋转 3 位数字
- OpenGL:在那个方向上旋转和移动
- 给定方向和位置如何使用 GLM 计算旋转矩阵
- 相机的旋转方向在一段时间后反转
- 我如何仅使用一个Arduino uno才能在同一时间和同一方向上旋转两个步进电动机
- 给定的3D旋转矩阵和3D方向矢量发现角差
- 从围绕xyz的旋转中找到xyz方向
- 沿矢量方向旋转矩阵
- GLM矩阵的旋转方向,使用四元数
- 如何计算基于方向向量的旋转矩阵
- 如何通过在for循环中旋转方向来获得采样点
- 摄像机在可变重力下的旋转和方向