题解 | #向左移动牛群#

向左移动牛群

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;
    }
};

全部评论

相关推荐

vip牛牛:测试吧,开发现在至少212
点赞 评论 收藏
分享
头像
02-26 13:58
门头沟学院 Java
北城_阿亮:把八股背一背,包装一下实习经历项目经历,要是有心思考证就考一考,然后把别人的项目爬到自己github上,包装到简历里,什么三个月?一个月!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
牛客网
牛客企业服务