博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]Rotate Array
阅读量:2236 次
发布时间:2019-05-09

本文共 659 字,大约阅读时间需要 2 分钟。

解题思路:
一,后面两个笨算法,都要移动好多次,这个算法只需要移动n-k次
边界条件:nums的长度小于等于1,k == 0,这些都直接返回,不要算了;
前条件:k若大于nums的长度,则k对nums.size()取余; 把nums最后k个元素取出
不变式,nums前面 length-k个元素,向右移动k个位置。

结束条件:nums内部移动完毕,把前条件中取出的k个元素一次放到nums前面对应的位置 

class Solution {public:    void rotate(vector
& nums, int k) { if ( nums.size() <= 1 || k == 0) return; if ( nums.size() <= k ) k = k % nums.size(); vector
temp; temp.assign(nums.begin() + nums.size()-k, nums.end()); for (int i = nums.size()-k-1; i >= 0; --i){ nums[i+k] = nums[i]; } for (int i = 0; i < temp.size(); ++i){ nums[i] = temp[i]; } }};

转载地址:http://jjpbb.baihongyu.com/

你可能感兴趣的文章
为什么要用交叉验证
查看>>
用学习曲线 learning curve 来判别过拟合问题
查看>>
用验证曲线 validation curve 选择超参数
查看>>
用 Grid Search 对 SVM 进行调参
查看>>
用 Pipeline 将训练集参数重复应用到测试集
查看>>
PCA 的数学原理和可视化效果
查看>>
机器学习中常用评估指标汇总
查看>>
什么是 ROC AUC
查看>>
Bagging 简述
查看>>
详解 Stacking 的 python 实现
查看>>
简述极大似然估计
查看>>
用线性判别分析 LDA 降维
查看>>
用 Doc2Vec 得到文档/段落/句子的向量表达
查看>>
使聊天机器人具有个性
查看>>
使聊天机器人的对话更有营养
查看>>
一个 tflearn 情感分析小例子
查看>>
attention 机制入门
查看>>
手把手用 IntelliJ IDEA 和 SBT 创建 scala 项目
查看>>
GAN 的 keras 实现
查看>>
AI 在 marketing 上的应用
查看>>