当前位置: 首页 > news >正文

leetcode学习笔记3:轮转数组(多次翻转数组思想)

先看题
力扣算法题 189. 轮转数组

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

示例 1:
输入: nums = [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]

解题思路1
最终结果数据[5,6,7,1,2,3,4]分为2部分,
前办部分:[5,6,7]
后半部分:[1,2,3,4]
用一个新数组,将前后2部分数组拼接起来就是结果

//Solution1:新数组存储public static void rotateSolution1(int[] nums, int k) {if (nums.length<=1){return;}if (nums.length<k){k =k% nums.length;}int[] newArray = new int[nums.length];for (int i=0;i<nums.length;i++){if (i<k){newArray[i] = nums[nums.length-k+i]; //前部分}else {newArray[i] = nums[i-k]; //后部分}}}

解题思路2
先将数组整体反转得到
[7,6,5, 4,3,2,1]
再降数组分为2部分,前半部分为:
[7,6,5]
后半部分:
[4,3,2,1]
分别对前后2部分数组进行反转即可得到:
[5,6,7,1,2,3,4]

/*Solution2:原地替换思路:1.数组整体翻转 [7,6,5, 4,3,2,1]2.数组前半段翻转3.数组后半段翻转
* */
public static void rotateSolution2(int[] nums, int k) {if (nums.length<=1){return;}if (nums.length<k){k =k% nums.length;}rotateArray(nums,0,nums.length-1);rotateArray(nums,0,k-1);rotateArray(nums,k,nums.length-1);
}
http://www.dtcms.com/a/526274.html

相关文章:

  • 新手网站建设教程图书宁波企业建站程序
  • 银川做网站建设wordpress多条件过滤
  • 【shell】每日shell练习:系统备份文件管理/系统性能趋势分析
  • 重庆门户网站开发报价app开发公司十强
  • 广东建设协会网站首页关键词推广seo
  • Orleans 配置方式时序图
  • 网站建设 空间杭州 电子商务网站建设 网络服务
  • 有哪些图片设计网站有哪些问题网站权重最高
  • 怎样上传网站到百度wordpress 文章截取
  • 网站建设120wordpress左右
  • 如何上传网站模板如何评价一个网站设计的好坏
  • 苏州做网站费用东莞模板建站平台
  • 个人资质网站做推广wordpress漏洞 2014
  • 小型企业网站建设项目网站整合方案
  • 波音网站开发四川省住房建设厅官网
  • 丰城网站建设厦门专业网站营销
  • 黄山建设网站公司电话号码WordPress程序漏洞
  • 企业网站制作app登录wordpress
  • 门户网站建设 简报上海市工程建设质量管理协会网站
  • 全面解析网站建设及报价企业电子商务网站建设(论文
  • 网站内链案例常德论坛尚一网
  • Kylin Linux Advanced Server V10 上成功安装 NVIDIA Container Toolkit
  • 做货代在哪个网站找客源北京丰台做网站
  • 含山县住房和城乡建设局网站wordpress demo iframe
  • 新能源知识库(119)巴拿马电源和固态变压器两种方案的场景比较
  • 企业网站搭建新感觉建站网站页中繁体转移代码
  • KTH7112 是一款高速高精度的磁编码器,在轴应用,校准后 INL 精度 < ±0.1°
  • 品牌创意型网站建设哪些公司做网站比较好
  • SaaS系统多租户架构设计与核心技术实践
  • 茶山网站仿做寻找网站建设员