Original title link: https://leetcode.com/problems/degree-of-an-array/description/
Import Java.util.HashMap;
Import Java.util.Map;
/** * Created by Joe on 2018/3/14. * 697. Degree of an Array * https://leetcode.com/problems/degree-of-an-array/description/*/public class P697 {public int
Findshortestsubarray (int[] nums) {//Create a HashMap//key for the value//value to degree, start, end of the ternary group
Map<integer, int[]> map = new hashmap<> ();
for (int i = 0; i < nums.length; i++) {//If there is no this value if (!map.containskey (Nums[i])) {
int[] Value = new Int[]{1, I, i};
Map.put (Nums[i], value);
} else {int[] value = Map.get (Nums[i]);
Modification and end position Value[0] + = 1;
VALUE[2] = i;
Map.put (Nums[i], value);
}} int maxdegree = 0;
int smallest = Integer.max_value;
For (Integer Key:map.keySet ()) {int[] value = Map.get (key); if (valuE[0] > Maxdegree) {maxdegree = value[0];
smallest = value[2]-value[1] + 1; } else if (value[0] = = maxdegree) {smallest = smallest < value[2]-value[1] + 1? smallest:value[2]
-value[1] + 1;
}} return smallest;
public static void Main (string[] args) {new P697 (). Findshortestsubarray (New int[]{1,2,2,3,1});
}
}