zoukankan      html  css  js  c++  java
  • 最大最小表示法模板

    /*
    我对这个算法的理解是意淫出来的,没有详细严谨的证明
    ,所以只把重要的地方注释了一下
    */
    int getMin(){
        int i=0,j=1,k=0;
        while(i<len&&j<len&&k<len){
            int t=T[(i+k)%len]-T[(j+k)%len];
            if(t==0) k++;
            else{
                if(t>0) i+=k+1;//从T[i->i+k+1]开头的不会比之前的小,之前所比较的都是相等的;
                else j+=k+1;
                if(i==j) j++;
                k=0;
            }
        }
        return min(i,j);
    }
    int getMax(){
        int i=0,j=1,k=0;
        while(i<len&&j<len&&k<len){
            int t=T[(i+k)%len]-T[(j+k)%len];
            if(t==0) k++;
            else{
                if(t>0) j+=k+1;
                else i+=k+1;
                if(i==j) j++;
                k=0;
            }
        }
        return min(i,j);
    }
    
    
    int getMin(){
        int i=0,j=1,k=0;
        while(i<len&&j<len&&k<len){
            int t=T[(i+k)%len]-T[(j+k)%len];
            if(t==0) k++;
            else{
                if(t>0) i+=k+1;
                else j+=k+1;
                if(i==j) j++;
                k=0;
            }
        }
        return min(i,j);
    }
    int getMax(){
        int i=0,j=1,k=0;
        while(i<len&&j<len&&k<len){
            int t=T[(i+k)%len]-T[(j+k)%len];
            if(t==0) k++;
            else{
                if(t>0) j+=k+1;
                else i+=k+1;
                if(i==j) j++;
                k=0;
            }
        }
        return min(i,j);
    }
    

      

  • 相关阅读:
    继承作业0920
    类与对象
    类和对象基础题
    类和对象数组
    数组
    字符串
    2.1面向对象
    7.1 Java集合概述
    Java动态代理的两种实现方法
    18.5.2动态代理和AOP
  • 原文地址:https://www.cnblogs.com/imzscilovecode/p/8119183.html
Copyright © 2011-2022 走看看