• 旋转数组的最小数字


    package com.algorithm;
    
    import java.util.Arrays;
    
    /*把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。
    输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。
    例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。
    NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。*/
    public class RotateNumber {
        //运行时间:195ms
        //占用内存:4307k
         public int minNumberInRotateArray(int [] array) {
                if(array.length == 0) 
                    return 0;
                int[] arrayb = new int[array.length];
                int count = 0;//记录下标值,最大的那个
                int j = 0;
                for(int i = 0; i < array.length; i++) {
                    j = i+1;
                    if(j < array.length && array[i] > array[j]){
                        count = j;
                        break;
                    }
                }
                //找到下标后,分为两部分,count 后面的移到arrayb中,然后将count前面
                //的再移到后面
                for(int i = 0; i < arrayb.length;i++) {
                    //移动后面的
                    for(int k = count; k < arrayb.length && i < arrayb.length; k++) {
                        arrayb[i] = array[k];
                        i++;
                    }
                    //移动前面的
                    for(int k = 0; k < count && i < arrayb.length; k++){
                        arrayb[i] = array[k];
                        i++;
                    }
                }
                return arrayb[0];
            }
         public static void main(String[] args) {
             int a[] = {3,4,5,1,2};
             int m = new RotateNumber().minNumberInRotateArray(a);
             System.out.println(m);
        }
    }
  • 相关阅读:
    sshpass连接主机以及执行命令
    elk集群配置并破解x-pack
    socket实现简单通信会话
    docker容器跨宿主机通信
    docker运行wordpress
    centos7 利用docker运行nginx项目
    docker容器基础命令
    docker镜像基础命令
    vue中使用延时加载
    less
  • 原文地址:https://www.cnblogs.com/fankongkong/p/6495463.html
Copyright © 2020-2023  润新知