Rotate Array

本文详细介绍了如何将数组向右旋转 k 步的方法,包括三种不同的思路和实现方式。

【题目描述】

Rotate an array of n elements to the right by k steps.

For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].

【思路】

1.每次都是把第n-1个数插入到最前面,最后再将这个vector resize一下就可以了。

2.重新声明一个vector变量tmp,其与nums的元素对应位置为tmp[(i+k)%n]=nums[i],最后再将tmp重赋给nums.但要注意一点,记得初始化vector变量tmp。

3.将数组分成两部分,先roate整个数组,再roate第一部分,最后roate第二部分。

【代码】

思路1:

class Solution {
public:
    void rotate(vector<int>& nums, int k) {
        int n=nums.size();
        k=k%n;
        int cnt=0;
        while(cnt!=k){
            nums.insert(nums.begin(),nums[n-1]);
            cnt++;
        }
        nums.resize(n);
    }
};

思路2:

class Solution {
public:
    void rotate(vector<int>& nums, int k) {
        int n=nums.size();
        vector<int> tmp(n,0);
        if(k==0) return;
        for(int i=0;i<n;i++){
            tmp[(i+k)%n]=nums[i];
        }
        nums=tmp;
    }
};

思路3:

void rotate(int* nums, int numsSize, int k) {
     k=k%numsSize;
     reverse(nums,numsSize);
     reverse(nums,k);
     reverse(&nums[k],numsSize-k);
}

void reverse(int* nums,int n){
    int mid=n/2;
    int tmp;
    for(int i=0;i<mid;i++){
        tmp=nums[i];
        nums[i]=nums[n-i-1];
        nums[n-i-1]=tmp;
    }
}



内容概要:本文系统介绍了Go语言在云计算核心技术中的应用,涵盖Kubernetes API操作、Service Mesh(Linkerd)集成以及Serverless函数开发。通过使用Go语言的client-go库实现对Kubernetes资源的增删改查,展示了如何自动化管理容器化应用;深入讲解Go服务与Linkerd服务网格的集成要点,包括通信模型适配、可观测性集成、流量控制策略配合及调试审计实践;并以阿里云函数计算为例,演示了Go编写Serverless函数的完整流程,包括代码编写、配置部署及性能优化策略。全文结合代码示例和实际场景,全面呈现Go语言在云原生生态中的强大能力。; 适合人群:具备Go语言基础,熟悉云计算基本概念,从事云原生、微服务或后端开发工作1-3年的研发人员;对Kubernetes、服务网格和Serverless技术感兴趣的开发者。; 使用场景及目标:①掌握使用Go语言操作Kubernetes API实现自动化运维;②理解并实践Go服务与Linkerd服务网格的集成,提升微服务系统的可观测性与流量治理能力;③学习如何用Go开发高性能Serverless函数,并掌握冷启动优化、内存管理等实战技巧; 阅读建议:此资源理论与实践紧密结合,建议读者在本地或测试环境中动手复现文中代码示例,逐步理解各技术组件的工作机制,并结合实际项目需求进行拓展应用,以加深对Go语言在云原生领域综合运用的理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值