public class Main {     private static Scanner in;     public static void main(String[] args) {         in = new Scanner(System.in);         int n = in.nextInt();         int k = in.nextInt();         int t = in.nextInt();         int[] arr = new int[n];         for (int i = 0; i < n; i++) {             arr[i] = in.nextInt();         }         //System.out.println(Arrays.toString(arr));         System.out.println(getNum(arr, n, k, t));     }     public static int getNum(int[] arr, int n, int k, int t) {         if (k > n)             return 0;         Map<Integer, Integer> map = new HashMap<>();         int index = 0;         int res = 0;         for (int i = 0; i < n; i++) {             if (map.containsKey(arr[i])) {                 map.put(arr[i], map.get(arr[i]) + 1);             } else {                 map.put(arr[i], 1);             }             if (map.get(arr[i]) == t)                 index++;             if (i >= k-1) {                 if (index > 0)                     res++;                 map.put(arr[i - k + 1], map.get(arr[i - k + 1]) - 1);                 if (map.get(arr[i - k + 1]) == t - 1)                     index--;             }         }         return res;     } } 按照题主思路来的java,不过我是用了hashmap
点赞 评论

相关推荐

喜欢核冬天的哈基米很想上市:会爆NullPointerException的
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客网
牛客企业服务