zoukankan      html  css  js  c++  java
  • 算法问题求数组排序后最大相邻数差

    求最大相邻数字

    2,6,3,4,5,10,9
    利用位图概念,讲最大值作为新数组长度,最小值作为偏移量,通过当前元素减去偏移量,放到位图里,设置为1,其他的设置为0

    package algorithm.ispowerof2.getmaxsorteddistance;
    
    public class GetMaxSortedDistance {
    
        //利用类似位图的概念去解决
        public static int getMaxDistance(int[] arr) {
            int min = arr[0];
            int max = arr[0];
            for (int i = 0; i < arr.length; i++) {
                min = min < arr[i] ? min : arr[i];
                max = max >= arr[i] ? max : arr[i];
            }
    
            int[] temp = new int[max];
            for (int i = 0; i < arr.length; i++) {
                temp[arr[i] - min] = 1;
            }
    
            int res = 0;
            int start = 0;
            for (int i = 0; i < temp.length; i++) {
                if(temp[i]==0 && i-1!=-1 && temp[i-1]!=0){
                    start = i-1;
                }
                if(temp[i]!=0  && i-1!=-1 && temp[i-1]==0){
                    res = res>(i-start)?res:(i-start);
                }
            }
            return res;
    
        }
    
        public static void main(String[] args) {
            int[] arr = {2,6,3,4,5,10,9};
            System.out.println(getMaxDistance(arr));
        }
    }
    
    结果
    3
    
    不会,我可以学;落后,我可以追赶;跌倒,我可以站起来!
  • 相关阅读:
    Python rindex()方法
    Python rfind()方法
    Python replace()方法
    服务器技术综述(三)
    服务器技术综述(二)
    服务器技术综述(一)
    TensorRT-优化-原理
    TensorRT-安装-使用
    TensorRT 加速性能分析
    GPU加速:宽深度推理
  • 原文地址:https://www.cnblogs.com/xiaoshahai/p/15601832.html
Copyright © 2011-2022 走看看