题解 | #调整牛群的位置#

调整牛群的位置

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-题解 文章被收录于专栏

手把手带你刷题

全部评论

相关推荐

04-01 16:02
已编辑
武汉工程大学 Java
牛客98843461...:处女面??我还种马面渣男面处男面呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务