旋转数组

  • 题目
  • 大致思路
  • 代码实现

题目

大致思路

将数组进行翻转,翻转3次即可实现旋转数组,以第一组例子进行示例:
nums = [1 2 3 4 5 6 7], k = 3
翻转顺序
1 2 3 4 5 6 7
第一次将数组完全翻转(0 - 最后)
7 6 5 4 3 2 1
第二次将0-2的序列翻转(0- k-1)
5 6 7 4 3 2 1
第三次将3-6的索引翻转(k - 最后)
5 6 7 1 2 3 4
结束。

代码实现

package com.immunize.leetcode.rotatearray;/*** 旋转数组,复杂度低于O(1)* * 思路:使用三次翻转即可完成旋转。* @author Mr IMMUNIZE**/
public class RotateArray {public void rotate(int[] nums, int k) {k %= nums.length;//将最后k个值翻转到数组最前面reverse(nums, 0, nums.length - 1);//再次翻转已经被翻转到最前面的k个值,使其位置对应正确reverse(nums, 0, k - 1);//翻转k+1 -最后面的值,使其回到一开始的顺序reverse(nums, k, nums.length - 1);}public void reverse(int[] nums, int i, int j){while(i < j){int temp = nums[i];nums[i] = nums[j];nums[j] = temp;i++;j--;}}
}
--------------------------------------------------------
//写测试class的时候出了点小bug,暂时不论,leetcode是提交通过了,明天继续加油!

20190809:旋转数组相关推荐

  1. 剑指offer:面试题11. 旋转数组的最小数字

    题目:旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如,数组 [3,4,5,1,2] 为 [1,2, ...

  2. 剑指offer_第6题_旋转数组的最小数字

    题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋 ...

  3. 数组元素替换_LeetCode 题解 | 189. 旋转数组

    力扣 189. 旋转数组(点击查看题目) 题目描述 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数. 示例 1: 示例 2: 说明: 尽可能想出更多的解决方案,至少有三种不同的方 ...

  4. 剑指offer:旋转数组的最小数字

    题目 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的 ...

  5. 输出一个为递增排序数组的旋转数组中的最小元素——8

    把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为数组{1, 2,3, 4, 5}的一个旋转, ...

  6. 《LeetCode力扣练习》剑指 Offer 11. 旋转数组的最小数字 Java

    <LeetCode力扣练习>剑指 Offer 11. 旋转数组的最小数字 Java 一.资源 题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 ...

  7. 【剑指offer-Java版】08旋转数组的最小数字

    旋转数组最小数字:暴力方法就是遍历-有效的方法是二分,但是存在失效的情况 几个特别的测试用例需要注意下: 数组中含有多个相同的数字 最小数字就是第一个 public class _Q08 {publi ...

  8. Java 旋转数组查找旋转点和任意元素(元素可重复)

    public class Test {// 已知数组A是由有序数组B(数组B未知)向右移动n(0<=n<=B.length)位得到// 例如 A = {4, 5, 1, 2, 3} 由 B ...

  9. JAVA实现旋转数组的最小数字问题(《剑指offer》)

    题目:旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个非递减序列的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5} ...

最新文章

  1. SQLite简介与安装
  2. Enumerator a Composite Structure
  3. 你是一个职业的页面重构工作者吗?
  4. @Autowired注解与@resource注解的区别(十分详细)
  5. The next Industry Standard in IT Monitoring, a python implementation Nagios like tool --- Shinken
  6. MM模块操作流程及相关建议代码
  7. UV认证应用安全标准的目的
  8. 颜色分类—leetcode75
  9. linux如何判断网线插入_【干货】配线架的连接方式有哪几种?配线架与交换机如何连接?...
  10. python try else_python try/except/else与递归
  11. 前端获取不了rest请求自定义headers的问题
  12. 在新浪微博上关于敏捷的一些讨论
  13. OpenLayers WFS指定地理范围查询
  14. oracle 跨服务器推送视图_Oracle11g的v$diag_info视图获得控制文件转储文件名及位置...
  15. 输入你的密码来连接到_手机怎样连接WiFi?详细步骤,教你操作
  16. C++11常用新特性
  17. 编程珠玑续版-chp2 关联数组-awk
  18. LAMP兄弟连的兄弟们都该看看!(绝非欺骗)
  19. 分享一个MAC下绕开百度网盘限速下载的方法,三步操作永久生效
  20. [INS-40719]IP address configured for Single Client Access Name(SCAN):test-pdb.xxxxxx is already assi

热门文章

  1. 为什么女性创业举步维艰?
  2. 中国有什么拿得出手的开源软件产品?|原力计划
  3. 科大讯飞成为北京 2022 年冬奥会和冬残奥会官方自动语音转换与翻译独家供应商
  4. Zend 创始人欲创建 PHP 方言,暂名为 P++;鸿蒙 OS 面世;中国首个开源协议诞生 | 开发者周刊...
  5. 什么是5G?居然有人用漫画把它讲得如此接地气!
  6. 进击的程序媛:毕业于斯坦福,Google 元老级员工,曾任雅虎 CEO | 人物志
  7. 狼性文化遭质疑,那我们当个佛系程序员可好?
  8. 程序员如何玩转汇编指令?
  9. mysql主从同步触发器_Mysql 主从复制触发器问题
  10. k3s 卸载_Mac-Homebrew安装/卸载/更换国内镜像源