这是力扣初级算法中的一个题目,题目要求如下。
我的想法是,另外创建一个数组存储nums的元素,便于对nums的修改。
通过观察可得,经过变换后,当i+k<numsSize时,nums[i+k]=arr[i],当i+k>=numsSize时就需要考虑,此时若像之前一样,就会越界访问,所以经过尝试得出nums[i+k-numsSize]=arr[i],可以满足要求。
不过由于我是由示例一思考这题的,在提交后就出现问题了。
比如:输入:nums = [-1], k=2 输入:nums[1,2], k=3
很明显这也是由于i+k-numsSize无法满足要求导致的。
所以进一步修改得出如下代码:
顺利通过所有测试点。
另外参考题解中翻转数组的方法得出以下代码:
首先翻转整个数组,然后从第k个元素后截断数组,分别翻转,最后得到的数组便是结果。