LeetCode 189. 旋转数组(环形替换)

1. 题目

给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。

示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3
输出: [5,6,7,1,2,3,4]
解释:
向右旋转 1 步: [7,1,2,3,4,5,6]
向右旋转 2 步: [6,7,1,2,3,4,5]
向右旋转 3 步: [5,6,7,1,2,3,4]

要求使用空间复杂度为 O(1)原地 算法。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/rotate-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

2.1 环形替换

在这里插入图片描述

class Solution {
public:void rotate(vector<int>& nums, int k) {k = k%nums.size();if(k == 0)return;int i, j, j0, count = 0, prev, next = nums[0];for(i = 0; count < nums.size(); ++i){j0 = i;prev = nums[j0];while(i != j){j = (j0+k)%nums.size();next = nums[j];nums[j] = prev;j0 = j;prev = next;++count;}	}}
};

在这里插入图片描述

2.2 分段反转

n=7, k=3

原数组                    : 1 2 3 4 5 6 7
反转所有数字后             : 7 6 5   4 3 2 1
反转前 k 个数字后          : 5 6 7   4 3 2 1
反转后 n-k 个数字后        : 5 6 7   1 2 3 4 --> 结果
class Solution {
public:void rotate(vector<int>& nums, int k) {k = k%nums.size();if(k == 0)return;reverse(nums.begin(), nums.end());reverse(nums.begin(),nums.begin()+k);reverse(nums.begin()+k, nums.end());}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478620.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

吴恩达:机器学习应以数据为中心

源 | 新智元今天是吴恩达45岁生日。他是国际最权威的ML学者之一&#xff0c;学生遍布世界各地。在最近的一期线上课程中&#xff0c;吴恩达提出了以模型为中心向以数据为中心的AI。吴恩达发推称&#xff0c;「大家为自己送上最好的礼物就是&#xff0c;观看这个视频观看并提出自…

如何开发小程序开发者工具?

最近集团内部在自研小程序&#xff0c;我负责小程序开发者工具的调试部分。经过一段时间的探索&#xff0c;摸索出不少经过实际检验的可行手段。接下来将会用几篇文章总结一下思路。 文章的内容主要会分为以下几部分&#xff1a; 如何建立逻辑层运行时容器&#xff08;两种方…

美团点评基于Storm的实时数据处理实践

背景 目前美团点评已累计了丰富的线上交易与用户行为数据&#xff0c;为商家赋能需要我们有更强大的专业化数据加工能力&#xff0c;来帮助商家做出正确的决策从而提高用户体验。目前商家端产品在数据应用上主要基于离线数据加工&#xff0c;数据生产调度以“T1”为主&#xff…

会议交流 | 大规模知识图谱的构建及应用分享

本文转载自公众号&#xff1a;DataFunTalk。论坛出品&#xff1a;张伟 阿里巴巴 资深算法专家分享时间&#xff1a;12月19日&#xff0c;9:00-12:00导读&#xff1a;12月19日&#xff0c;9&#xff1a;00-12&#xff1a;00。在DataFunTalk年终大会上&#xff0c;由阿里巴巴资深…

机器翻译小记

神经网络翻译面临的挑战

赛尔原创 | N-LTP:基于预训练模型的中文自然语言处理平台

论文名称&#xff1a;N-LTP: A Open-source Neural Chinese Language Technology Platform with Pretrained Models论文作者&#xff1a;车万翔&#xff0c;冯云龙&#xff0c;覃立波&#xff0c;刘挺原创作者&#xff1a;冯云龙论文链接&#xff1a;https://arxiv.org/abs/200…

LeetCode 49. 字母异位词分组(哈希)

1. 题目 给定一个字符串数组&#xff0c;将字母异位词组合在一起。字母异位词指字母相同&#xff0c;但排列不同的字符串。 示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"], 输出: [["ate",…

论文浅尝 - SWJ | 基于知识图谱和注意力图卷积神经网络的可解释零样本学习

论文题目&#xff1a;Explainable Zero-shot Learning via Attentive Graph Convolutional Network and Knowledge Graphs本文作者&#xff1a;耿玉霞&#xff0c;浙江大学在读博士&#xff0c;研究方向为知识图谱、零样本学习、可解释性发表期刊&#xff1a;Semantic Web Jour…

LeetCode 3. 无重复字符的最长子串(滑动窗口+哈希)

1. 题目 给定一个字符串&#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc"&#xff0c;所以其长度为 3。示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重…

安装kenlm出现问题的解决方案gcc g++

安装kenlm出现问题的解决方案 apt-get install gcc apt-get install g参考文章&#xff1a;gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory

论文浅尝 - TACL2020 | 改进低资源跨语言实体链接的候选生成问题

论文笔记整理&#xff1a;谭亦鸣&#xff0c;东南大学博士。来源&#xff1a;TACL 2020链接&#xff1a;https://arxiv.org/ftp/arxiv/papers/2003/2003.01343.pdf1.背景介绍跨语言实体链接(Cross-lingual Entity Linking, XEL)旨在利用源语言文本中实体描述(提及)&#xff0c;…

卫星系统——酒店后端全链路日志收集工具介绍

背景 随着酒店业务的高速发展&#xff0c;我们为用户、商家提供的服务越来越精细&#xff0c;系统服务化程度、复杂度也逐渐上升。微服务化虽然能够很好地解决问题&#xff0c;但也有副作用&#xff0c;比如&#xff0c;问题定位。 每次问题定位都需要从源头开始找同事帮我人肉…

拖拽式Vue组件代码生成平台(LCG)新版详细介绍

拖拽式Vue组件代码生成平台是一款小猴自研的Vue代码生成工具&#xff0c;英文全称&#xff1a;Low Code Generator&#xff0c;简称LCG。它也是一种LowCode解决方案。通过它可以快速完成Vue组件的代码骨架搭建&#xff0c;通过减少不必要的重复工作从而带来开发效率的提升。 体…

ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory

apt-get update apt-get install libglib2.0-dev系统&#xff1a;ubuntu16.04

LeetCode 454. 四数相加 II(哈希)

1. 题目 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) &#xff0c;使得 A[i] B[j] C[k] D[l] 0。 为了使问题简单化&#xff0c;所有的 A, B, C, D 具有相同的长度 N&#xff0c;且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间…

论文浅尝 - AAAI2020 | 多轮对话系统中的历史自适应知识融合机制

论文笔记整理&#xff1a;潘锐&#xff0c;天津大学硕士。链接&#xff1a;https://www.aaai.org/ojs/index.php/AAAI/article/view/6425来 源&#xff1a;AAAI 2020论文简介保持对话的一致性和避免内容重复是构建以知识为基础的多轮对话系统的两个关键因素。尽管一些工作倾…

高性能平台设计—美团旅行结算平台实践

本文根据第23期美团技术沙龙演讲内容整理而成。 背景 美团酒旅有很多条业务线&#xff0c;例如酒店、门票、火车票等等&#xff0c;每种业务都有结算诉求&#xff0c;而结算处于整个交易的最后一环不可缺少&#xff0c;因此我们将结算平台化&#xff0c;来满足业务的结算诉求。…

小程序调试技术导读

近期团队内在自研小程序&#xff0c;我负责开发者工具中的调试部分。调试作为面向开发者的基础能力&#xff0c;扮演了极为重要的角色。 本篇文章是导读文章。 调试能力从0到1一共经历了4个版本&#xff0c;接下来的文章将会以这4个版本为主线分别进行介绍。 初始版 上图为调试…

可交互的 Attention 可视化工具!我的Transformer可解释性有救了?

文 | Sherry视觉是人和动物最重要的感觉&#xff0c;至少有80%以上的外界信息是经过视觉获得的。我们看论文的时候&#xff0c;通过图表来确定文章的大致内容往往也是一个更高效的 说到深度神经网络的可视化&#xff0c;最经典的莫过于的CNN密恐图了&#xff1a;这种可视化方法…

ImportError: libSM.so.6: cannot open shared object file: No such file or dir

ImportError: libSM.so.6: cannot open shared object file: No such file or dir 出现错误&#xff1a; ImportError: libSM.so.6: cannot open shared object file: No such file or dir 解决方法&#xff1a; apt-get install libsm6如果你出现了上面的错误&#xff0c;那…