目录
没什么好说的,这道题能解答出来的关键是移动的算法,即: " ($key + $k) % count($nums) "。
方法: 数组循环遍历(PHP)
class Solution {
/**
* @param Integer[] $nums
* @param Integer $k
* @return NULL
*/
function rotate(&$nums, $k) {
$res = [];
$length = count($nums);
$res = array_pad($res, $length, 1);
foreach($nums as $key => $value) {
$pos = ($key + $k) % $length;
$res[$pos] = $value;
}
foreach($res as $key => $value) {
$nums[$key] = $value;
}
return $nums;
}
}
解释: 数组移动好位置之后还有一个关键就是将新数组的元素插入回原数组。
测试结果:
执行用时:72 ms, 在所有 PHP 提交中击败了36.16%的用户
内存消耗:25.6 MB, 在所有 PHP 提交中击败了90.88%的用户
通过测试用例:38 / 38