题解 | #调整牛群的位置#
调整牛群的位置
https://www.nowcoder.com/practice/cfa2130da69449229d8159561d39b0d3
一、知识点
数组 数学
二、解题思路
先翻转0到k-1的元素,再翻转k到len-1的元素,最后反转0~len-1的元素即可。
时间复杂度O(n),空间复杂度O(1)。
三、C++解法
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @param k int整型
* @return int整型vector
*/
vector<int> rotate_left(vector<int>& nums, int k) {
int len = nums.size();
k %= len;
swap_nums(nums, 0, k - 1);
swap_nums(nums, k, len - 1);
swap_nums(nums, 0, len - 1);
return nums;
}
void swap_nums(vector<int>& nums, int left, int right) {
for (int i = left, j = right; i <= j; i ++, j --) {
swap(nums[i], nums[j]);
}
}
};
#在找工作求抱抱#高频算法Top202-题解 文章被收录于专栏
手把手带你刷题
查看13道真题和解析