ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

旋转数组的最小数字【记录】

2021-12-12 18:30:48  阅读:115  来源: 互联网

标签:arr leftIndex int 最小 旋转 midIndex numbers 数组 rightIndex


解法一

package algorithmBasic;

/**
 * @author kegekeqi
 * @version 1.0
 * @date 2021-12-12 18:01
 */
public class RotateArray {
	public int minArray(int[] numbers) {
		if (null == numbers || numbers.length == 0) {
			return 0;
		}
		int low = 0;
		int high = numbers.length - 1;
		while (low < high) {
			int mid = (low + high) / 2;
			if (numbers[mid] < numbers[high]) {
				high = mid;
			} else if (numbers[mid] > numbers[high]) {
				low = mid + 1;
			} else {
				high--;
			}
		}
		return numbers[low];
	}

	public static void main(String[] args) {
		RotateArray array = new RotateArray();
		int[] numbers = {3, 4, 5, 1, 2};
		int minArray = array.minArray(numbers);
		System.out.println(minArray);
	}
}

package algorithmBasic;

/**
 * @author kegekeqi
 * @version 1.0
 * @date 2021-12-12 18:16
 */
public class RotateArray2 {
	public int minInReversingList(int[] arr){
		if(arr==null){
			return -1;
		}
		int leftIndex = 0;
		int rightIndex = arr.length -1;
		int midIndex = leftIndex;
		while(arr[leftIndex]>= arr[rightIndex]){
			if(rightIndex - leftIndex <= 1){
				midIndex = rightIndex;
				break;
			}
			midIndex = (leftIndex+rightIndex)/2;
			if(arr[leftIndex]== arr[rightIndex] && arr[midIndex]== arr[leftIndex]){
				return MinInOrder(arr,leftIndex,rightIndex);
			}
			if(arr[midIndex] >= arr[leftIndex]){
				leftIndex = midIndex;
			}else if(arr[midIndex] < arr[rightIndex]){
				rightIndex = midIndex;
			}
		}
		return arr[midIndex];
	}
	public int MinInOrder(int[] arr,int leftIndex,int rightIndex){
		int result = arr[leftIndex];
		for(int i = leftIndex +1;i<rightIndex;i++){
			if(result> arr[i]){
				result = arr[i];
			}
		}
		return result;
	}
	public static void main(String[] args){
		RotateArray2 test = new RotateArray2();
		int[] arr = {3, 4, 5, 1, 2};
		System.out.println(test.minInReversingList(arr));

	}
}

标签:arr,leftIndex,int,最小,旋转,midIndex,numbers,数组,rightIndex
来源: https://blog.csdn.net/weixin_43206161/article/details/121891308

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有