import java.util.HashMap;

public class exam3 {
    
    public static void main(String [] args) {
        
            HashMap<Integer, Integer> map=new HashMap<Integer,Integer>();
            int k[]= {1,2,3,3,4};
            int len=k.length;
            int minIndex = minIndex(k);
            map.put(minIndex, 1);
            int index =left(minIndex, len);
            while(map.keySet().size()!=len) {
                int left1=left(index, len);
                int right1=right(index, len);
                if(k[left1]>=k[index]&&k[right1]>=k[index]) {
                    map.put(index, 1);
                }else {
                    if(k[left1]>=k[index]&&k[index]>k[right1]) {
                        if(map.get(right1)!=null) {    
                            map.put(index, map.get(right1)+1);
                        }
                    }else {
                        if(k[left1]<k[index]&&k[index]<=k[right1]) {
                            if(map.get(left1)!=null) {
                                map.put(index, map.get(left1)+1);
                            }
                        }else {
                            if(k[index]>k[left1]&&k[index]>k[right1]) {
                                if(map.get(left1)!=null&&map.get(right1)!=null) {
                                    int max=map.get(left1)>map.get(right1)?map.get(left1)+1:map.get(right1)+1;
                                    map.put(index, max);
                                }
                            }
                        }
                    }
                }
                //向左循环遍历
                index=left1;
            }
            int count=0;
            for(int i:map.values())
                count+=i;
            System.out.println(count);
            
    }
    public static int left(int index,int len) {
        return (index+len-1)%len;
    }
    public static int right(int index,int len) {
        return (index+1)%len;
    }
    /**
     * 获取原始数组最小的数的位置
     * @param k
     * @return
     */
    public static int minIndex(int k[]) {
        int index =0;
        int min=k[0];
        int len=k.length;
        for(int i=0;i<len;i++) {
            if(min>k[i]) {
                min=k[i];
                index=i;
            }
        }
        return index;
    }
}
上午把题目理解错了,以为分数相等的时候,奖品应该也是一样的,下午重新做了一遍,不知道这样对不对。。。