697--数组的度(巧用HashMap)

  • 对于这种需要多个容器进行操作的,可用巧用Map容器,将数组放入值中。

题目

给定一个非空且只包含非负数的整数数组 nums,数组的 度 的定义是指数组里任一元素出现频数的最大值。

你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。

题解

点击查看代码
public class SixNineSeven {
    public static int findShortestSubArray(int[] nums) {
           Map<Integer,int []> map=new HashMap<>();
           int n=nums.length;
           for(int i=0;i<nums.length;i++){
               if(map.containsKey(nums[i])){
                   map.get(nums[i])[0]++;
                   map.get(nums[i])[2]=i;
               }
               else {
                   map.put(nums[i],new int[]{1,i,i});
               }
        }
           int MaxTime=0,MinLen=0;
           for(Map.Entry<Integer,int []> Map: map.entrySet()){
               int [] arr=Map.getValue();
               if(arr[0]>MaxTime){
                   MaxTime=arr[0];
                   MinLen=arr[2]-arr[1]+1;

               }
               else if(MaxTime==arr[0]){
                   if(MinLen>arr[2]-arr[1]+1){
                       MinLen=arr[2]-arr[1]+1;
                   }
               }
           }
           return MinLen;
    }
posted @   是徐洋洋呀  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示