剑指offer(九)之旋转数组的最小数字
2016-04-17 13:51
567 查看
题目描述
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减序列的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。
思路分析:1.直接使用冒泡排序,按从小到大排序
代码:
import java.util.ArrayList;
public class Solution {
public int minNumberInRotateArray(int [] array) {
int len=array.length;
int temp=0;
if(len==0){
return 0;
}
for(int i=0;i<len-1;i++){
for(int j=0;j<len-1-i;j++){
if(array[j]>array[j+1]){
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
return array[0];
}
}
2.直接找到最小元素,然后返回;先寻找分界点,找到第一个元素小于前一个元素的值,然后返回,即可。
代码:
import java.util.ArrayList;
public class Solution {
public int minNumberInRotateArray(int [] array) {
int len=array.length;
if(len==0){
return 0;
}
for(int i=0;i<len-1;i++){
if(array[i+1]<array[i]){
array[0]=array[i+1];
break;
}
}
return array[0];
}
}
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减序列的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。
思路分析:1.直接使用冒泡排序,按从小到大排序
代码:
import java.util.ArrayList;
public class Solution {
public int minNumberInRotateArray(int [] array) {
int len=array.length;
int temp=0;
if(len==0){
return 0;
}
for(int i=0;i<len-1;i++){
for(int j=0;j<len-1-i;j++){
if(array[j]>array[j+1]){
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
return array[0];
}
}
2.直接找到最小元素,然后返回;先寻找分界点,找到第一个元素小于前一个元素的值,然后返回,即可。
代码:
import java.util.ArrayList;
public class Solution {
public int minNumberInRotateArray(int [] array) {
int len=array.length;
if(len==0){
return 0;
}
for(int i=0;i<len-1;i++){
if(array[i+1]<array[i]){
array[0]=array[i+1];
break;
}
}
return array[0];
}
}
相关文章推荐
- jQuery学习笔记
- JS经常使用字符串处理方法总结
- FastJson和Gson和Json数据解析分析和用法
- JS 利用正则表达式替换字符串
- 浏览器中使返回上一页失效的js
- 谷歌 javascript v8 引擎 5.2版 32位 Debug DLL 分享及使用方法
- javascript 变量命名规则
- html页面转成jsp页面之后样式变化的问题解决方法
- JS原型详解
- D3.js人物关系图
- css绘制基本图形
- 一,细说 HTML5 之 HTML5 基础讲解
- cocoNode节点函数注释
- json转化为字符串
- JS对象详解
- 在windows下运行Felzenszwalb的Deformable Part Model(DPM)源码voc-release3.1来训练自己的模型
- CSS选择器详解(总结)
- jQuery实现隐藏标签
- fedora 多java版本共存
- 闭包详解