阵列修改[左旋转]
Array modification [Left Rotation]
所以,我只是在这里解决了问题:数组左旋转-Hackerrank在解决这个问题之后,我检查了其他人代码我很好奇他的代码如何工作,所以你们可以帮助我找出他的代码的工作原理。我的代码:
#include <iostream>
using namespace std;
int main()
{
int n;
int d;
cin >> n >> d;
int arr[n];
int lrotate[n];
for (int i=0; i<n; i++)
{
cin >> arr[i];
}
if (n-d>0)
{
for (int i=d; i<n;i++)
{
lrotate[i-(d)]=arr[i];
}
for (int i=0; i<n; i++)
{
lrotate[i+(n-d)]=arr[i];
}
for (int i=0; i<n; i++)
{
cout << lrotate[i] << " ";
}
}
}
这是他的代码:
#include <iostream>
using namespace std;
int main() {
int N, d, i;
cin >> N >> d;
int start = N - d;
int *arr = new int[N];
for (i=0; i<N; ++i)
{
if (start == N)
start = 0;
cin >> arr[start++];
}
for (i=0; i<N; ++i)
cout << arr[i] << " ";
return 0;
}
对不起,如果这是一个菜鸟问题,我很好奇他的代码是如何工作的,尤其是第7行和第12行。
他已经使用了简单的算法来解决此问题。
- 如果n == d数组没有变化。
- 如果"启动"不等于0(例如:start = 3表示,阵列必须旋转3次),则首先要循环,则该数组从索引从索引3开始填充到数组的结尾。
- 因此,启动正在逐渐增加,如果start == n,然后开始变为0,则在索引0中填充0索引3。
javaScript(nodejs)
中的左旋转 /*
* Complete the 'rotLeft' function below.
*
* The function is expected to return an INTEGER_ARRAY.
* The function accepts following parameters:
* 1. INTEGER_ARRAY a
* 2. INTEGER d
*/
function rotLeft(a, d) {
// Write your code here
let tempArr = [];
let j=0;
for(let i=d;i<a.length;i++){
tempArr[j]=a[i];
j++;
}
for(let i=0;i<d;i++)
{
tempArr[j]=a[i];
j++;
}
return tempArr;
}
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 与互斥锁相比,旋转锁可以保证上下文切换
- 独立读取-修改-写入顺序
- 当系统的卷被修改时,如何修改WASAPI环回捕获卷
- 绘制旋转的三角形
- 修改函数中的指针(将另一个指针作为参数传递)
- 为什么我可以通过引用修改常量返回
- 对于结构,表达式必须是可修改的ivalue
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 旋转模型矩阵时的形状失真
- 为什么不能修改对象中的值?另外,我如何改进此链表?
- 四边形的 2D 旋转
- 修改创建帐户程序
- 我应该如何修改此代码以使用给定字符串中的字母打印菱形图案
- 如何从子成员函数修改父公共成员变量
- 修改 VS Code 中的默认C++代码段
- 垂直方向的 Gtk3+ 旋转按钮 (c/c++)
- 为什么在我的函数类型后使用引用运算符 (&) 允许我修改它返回的值?
- 阵列修改[左旋转]
- 球物理-通过旋转修改球的X/Y位置