题解 | #向左移动牛群#

向左移动牛群

https://www.nowcoder.com/practice/e70fc604c3684ce294e6af5e97feff04

考察的知识点:数组;

解答方法分析:

  1. 将 k 取模,以防止 k 大于数组长度的情况。
  2. 通过 reverse 函数对数组进行三次反转操作。第一次反转:将数组前半部分反转,即将后 k 个元素移到前面。第二次反转:将后半部分反转即将前 n-k 个元素移到后面。第三反转:将整个数组进行反转,即得到最终的结果。
  3. 最后,我们返回操作后的数组。

所用编程语言:C++;

完整编程代码:↓

class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param nums int整型vector
     * @param k int整型
     * @return int整型vector
     */
    vector<int> rotateCows(vector<int>& nums, int k) {
        int n = nums.size();
        k = k % n;
        reverse(nums.begin(), nums.begin() + n - k);
        reverse(nums.begin() + n - k, nums.end());
        reverse(nums.begin(), nums.end());
        return nums;
    }
};

全部评论

相关推荐

coffrar:全都是已读😅沟通一千五百多个了
点赞 评论 收藏
分享
03-03 14:59
重庆大学 后端
红鲤鱼与绿鲤鱼i:双一流后面为啥加ab,有点画蛇添足
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务