动易网站栏目,wordpress主题结合,dz可以做门户网站吗,wordpress 4.8中文文章目录 6、轮转数组 6、轮转数组
1、描述 给定一个整数数组 nums#xff0c;将数组中的元素向右轮转 k 个位置#xff0c;其中 k 是非负数。
示例 1:
输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6… 文章目录 6、轮转数组 6、轮转数组
1、描述 给定一个整数数组 nums将数组中的元素向右轮转 k 个位置其中 k 是非负数。
示例 1:
输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6,7,1,2,3,4] 2、关键字 数组向后轮转变换 3、思路 先用k对n取模 思路一使用辅助数组时间复杂度O(N),空间复杂度O(N) 思路二发现规律先把整个数组逆置之后把前k个元素逆置之后把后边n- k个元素逆置 4、notes 多练 6、code class Solution {
public:void reverse(vectorint nums, int i, int j) {while(i j) {int tem nums[i];nums[i] nums[j];nums[j] tem; i;j--;}}void rotate(vectorint nums, int k) {int n nums.size();k % n ;reverse(nums, 0, n - 1); // 整个数组逆置reverse(nums, 0, k - 1); // 逆置前边的k个reverse(nums, k, n - 1); // 逆置后边的n - k个}
};