起始数组 --> [1,2,3,4,5,6,7,8,null,null] 所需数组 --> [1,2,3,null,4,5,6,7,8,空值]
基本上试图将第 3 个索引后的所有数组元素移动 1 个位置;这只会在数组中创建一个间隙。
如何使用 for 循环来做到这一点?
您可以就地正确旋转元素,而无需创建额外的数组。
算法是这样的:
存储最后一个元素,从数组中的最后一个位置向后迭代,将元素移动一位,最后在第三个索引处插入最后一个元素:
int?[] arr = new int?[] { 1, 2, 3, 4, 5, 6, 7, 8, null, null };
const int StartIndex = 3;
int? last = arr[arr.Length - 1];
for (int i = arr.Length - 1; i > StartIndex; i--)
arr[i] = arr[i - 1];
arr[StartIndex] = last;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句