697. 数组的度

697. 数组的度

697. 数组的度_第1张图片

class Solution {
    public static int findShortestSubArray(int[] nums) {
       HashMap<Integer,Integer> map = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
                if(map.get(nums[i])==null){
                    map.put(nums[i],1);
                }
                else {
                    int value=map.get(nums[i]);
                    value++;
                    map.put(nums[i],value);
                }
        }

        Set<Integer> integers = map.keySet();

        int max=0;
        for (Integer key:integers){
            int value=map.get(key);
            if(max< value) max=value;
          //  System.out.println("key= "+key+" value= "+value);
        }
      //  System.out.println("max=" +max);

        ArrayList<Integer> list = new ArrayList<>();
        for (Integer key:integers){
            int value=map.get(key);
            if(max== value) list.add(key);

        }
     //   System.out.println("list = " +list);

        int ans=nums.length;
        for(Integer temp:list){
            System.out.println("temp= "+ temp);
            int len=0;
            int count=0;
            int start=0;
            for (int i = 0; i < nums.length; i++) {
                if(nums[i]==temp){
                    if(count==0){
                        start=i;
                     //   System.out.println("start= "+ start);
                    }
                    count++;

                    if(count==max){
                        len=i-start+1;
                    //    System.out.println("len="+len);
                        break;
                    }
                }
            }
            if(ans>len){
                ans=len;
            }
            
        }
        return ans;
    }
}


你可能感兴趣的:(leetcode,200,java,算法)