很抱歉,您没有提供需要改写的句子。请提供您希望改写的句子,我将为您改写为一个长尾词的。
- 内容介绍
- 文章标签
- 相关推荐
本文共计424个文字,预计阅读时间需要2分钟。
1. 简述: 一个长度为n的递增序列,如[1, 2, 3, 4, 5],进行旋转操作,即将数组最开始的若干个元素移动到数组的末尾,形成一个新的旋转数组。例如,变为[3, 4, 5, 1, 2]或[4, 5, 1, 2, 3]。
1.简述:
有一个长度为 n 的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。请问,给定这样一个旋转数组,求数组中的最小值。
数据范围:,数组中任意元素的值:
要求:空间复杂度:,时间复杂度:
示例1输入:
[3,4,5,1,2]返回值:
输入:
[3,100,200,3]返回值:
32.代码实现:
import java.util.ArrayList;public class Solution {
public int minNumberInRotateArray(int [] array) {
// 特殊情况判断
if (array.length== 0) {
return 0;
}
// 左右指针i j
int i = 0, j = array.length - 1;
// 循环
while (i < j) {
// 找到数组的中点 m
int m = (i + j) / 2;
// m在左排序数组中,旋转点在 [m+1, j] 中
if (array[m] > array[j]) i = m + 1;
// m 在右排序数组中,旋转点在 [i, m]中
else if (array[m] < array[j]) j = m;
// 缩小范围继续判断
else j--;
}
// 返回旋转点
return array[i];
}
}
本文共计424个文字,预计阅读时间需要2分钟。
1. 简述: 一个长度为n的递增序列,如[1, 2, 3, 4, 5],进行旋转操作,即将数组最开始的若干个元素移动到数组的末尾,形成一个新的旋转数组。例如,变为[3, 4, 5, 1, 2]或[4, 5, 1, 2, 3]。
1.简述:
有一个长度为 n 的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。请问,给定这样一个旋转数组,求数组中的最小值。
数据范围:,数组中任意元素的值:
要求:空间复杂度:,时间复杂度:
示例1输入:
[3,4,5,1,2]返回值:
输入:
[3,100,200,3]返回值:
32.代码实现:
import java.util.ArrayList;public class Solution {
public int minNumberInRotateArray(int [] array) {
// 特殊情况判断
if (array.length== 0) {
return 0;
}
// 左右指针i j
int i = 0, j = array.length - 1;
// 循环
while (i < j) {
// 找到数组的中点 m
int m = (i + j) / 2;
// m在左排序数组中,旋转点在 [m+1, j] 中
if (array[m] > array[j]) i = m + 1;
// m 在右排序数组中,旋转点在 [i, m]中
else if (array[m] < array[j]) j = m;
// 缩小范围继续判断
else j--;
}
// 返回旋转点
return array[i];
}
}

