给定一个大小为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;
}
抱歉,我的错误,int第三个循环在旋转函数中应该有k
我遵循了你的逻辑,看来你的回填部分有问题。
for(int k=s-1;k>=s-r;k--) { // change k>r+1 to k>=s-r
a[k] = st.top();
st.pop();
}
我读了一些关于如何优化正则表达式的文章,但是没有一个答案(更少的组,使用{X,Y}而不是*)似乎阻止了我的正则表达式获得堆栈溢出错误。 我正在尝试通过文件进行动态搜索。假设我正在一个相当大(2-4MB)的文件中搜索“我打赌你找不到我”。我的正则表达式生成器将生成正则表达式: 这个正则表达式的想法是,无论单词之间有什么字符或空格,它都能找到准确的短语。然而,当我尝试使用: 我遇到堆栈溢出错误。我知道
我基于Maged M.Michael和Michael L.Scott的《简单、快速、实用的非阻塞和阻塞并发队列算法》中指定的算法实现了一个无锁队列(有关算法,请跳到第4页) 我在上使用了原子操作,如等。 当只在一个线程中使用队列时,一切都很好,但是当从不同的线程中使用它时,我会得到堆栈溢出异常。 不幸的是,我无法追查问题的根源。似乎当一个<code>shared_ptr</code>超出范围时,它
我正在尝试使用java。util。Eclipse中Java项目中的ArrayList。它在这个IDE上解决起来很有趣,与我在NetBeans上的习惯相反。例如: 在NetBeans上,我可以简单地创建一个通用数组列表,如下所示: 但是,在Eclipse上,如果要成功声明和初始化ArrayList,结构如下: 我被迫做一个类型转换,而泛化只能在右侧完成。 然而,这还不算太糟糕,直到我尝试调用一些Ar
问题内容: 我想使用rxjava Observable处理翻新中的分页。我听了另一个问题的建议。 我有100多个页面需要获取,但是链在第20页左右失败,并且在logcat中使用以下日志停止了对可观察对象的任何进一步订阅 有人知道为什么会发生这种情况吗? 更新: 我知道这是由于递归而发生的,但是有没有更优雅的方式来处理带有翻新和rxjava的分页? 问题答案: 因此,鉴于我回答了您引用的原始问题,我
...在Xcode控制台,我得到 它演示了建立了连接并成功找到了服务器,但其他问题出现了。会很感激你的帮助。
对于minecraft服务器,我尝试使用标准的512MB以上的RAM运行服务器。这曾经对我起作用,但当我最近再次安装服务器时,它停止了工作。我使用以下命令行运行服务器: 但当我运行此脚本时,我得到以下错误: Picked初始化VM时出错,指定的最小和最大堆大小不兼容 操作系统:Windows 7 64bit Java:java7u45(64bit) RAM:8g 如果有人有解决方案,那就太棒了:)