20190809:旋转数组
旋转数组
- 题目
- 大致思路
- 代码实现
题目
大致思路
将数组进行翻转,翻转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:旋转数组相关推荐
- 剑指offer:面试题11. 旋转数组的最小数字
题目:旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如,数组 [3,4,5,1,2] 为 [1,2, ...
- 剑指offer_第6题_旋转数组的最小数字
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋 ...
- 数组元素替换_LeetCode 题解 | 189. 旋转数组
力扣 189. 旋转数组(点击查看题目) 题目描述 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数. 示例 1: 示例 2: 说明: 尽可能想出更多的解决方案,至少有三种不同的方 ...
- 剑指offer:旋转数组的最小数字
题目 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的 ...
- 输出一个为递增排序数组的旋转数组中的最小元素——8
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为数组{1, 2,3, 4, 5}的一个旋转, ...
- 《LeetCode力扣练习》剑指 Offer 11. 旋转数组的最小数字 Java
<LeetCode力扣练习>剑指 Offer 11. 旋转数组的最小数字 Java 一.资源 题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 ...
- 【剑指offer-Java版】08旋转数组的最小数字
旋转数组最小数字:暴力方法就是遍历-有效的方法是二分,但是存在失效的情况 几个特别的测试用例需要注意下: 数组中含有多个相同的数字 最小数字就是第一个 public class _Q08 {publi ...
- Java 旋转数组查找旋转点和任意元素(元素可重复)
public class Test {// 已知数组A是由有序数组B(数组B未知)向右移动n(0<=n<=B.length)位得到// 例如 A = {4, 5, 1, 2, 3} 由 B ...
- JAVA实现旋转数组的最小数字问题(《剑指offer》)
题目:旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个非递减序列的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5} ...
最新文章
- SQLite简介与安装
- Enumerator a Composite Structure
- 你是一个职业的页面重构工作者吗?
- @Autowired注解与@resource注解的区别(十分详细)
- The next Industry Standard in IT Monitoring, a python implementation Nagios like tool --- Shinken
- MM模块操作流程及相关建议代码
- UV认证应用安全标准的目的
- 颜色分类—leetcode75
- linux如何判断网线插入_【干货】配线架的连接方式有哪几种?配线架与交换机如何连接?...
- python try else_python try/except/else与递归
- 前端获取不了rest请求自定义headers的问题
- 在新浪微博上关于敏捷的一些讨论
- OpenLayers WFS指定地理范围查询
- oracle 跨服务器推送视图_Oracle11g的v$diag_info视图获得控制文件转储文件名及位置...
- 输入你的密码来连接到_手机怎样连接WiFi?详细步骤,教你操作
- C++11常用新特性
- 编程珠玑续版-chp2 关联数组-awk
- LAMP兄弟连的兄弟们都该看看!(绝非欺骗)
- 分享一个MAC下绕开百度网盘限速下载的方法,三步操作永久生效
- [INS-40719]IP address configured for Single Client Access Name(SCAN):test-pdb.xxxxxx is already assi
热门文章
- 为什么女性创业举步维艰?
- 中国有什么拿得出手的开源软件产品?|原力计划
- 科大讯飞成为北京 2022 年冬奥会和冬残奥会官方自动语音转换与翻译独家供应商
- Zend 创始人欲创建 PHP 方言,暂名为 P++;鸿蒙 OS 面世;中国首个开源协议诞生 | 开发者周刊...
- 什么是5G?居然有人用漫画把它讲得如此接地气!
- 进击的程序媛:毕业于斯坦福,Google 元老级员工,曾任雅虎 CEO | 人物志
- 狼性文化遭质疑,那我们当个佛系程序员可好?
- 程序员如何玩转汇编指令?
- mysql主从同步触发器_Mysql 主从复制触发器问题
- k3s 卸载_Mac-Homebrew安装/卸载/更换国内镜像源