博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Check some
阅读量:6119 次
发布时间:2019-06-21

本文共 1837 字,大约阅读时间需要 6 分钟。

public static boolean checkDuplicateWithinK(int[][] mat, int k){    class Cell{        int row;        int col;        public Cell(int r, int c){            this.row = r;            this.col = c;        }    }    int n = mat.length;    int m = mat[0].length;    k = Math.min(k, n*m);    //map from distance to cell postions of the matrix    Map
> map = new HashMap
>(); for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ if(map.containsKey(mat[i][j])){ for(Cell c : map.get(mat[i][j])){ int Dist = Math.abs(i - c.row)+Math.abs(j - c.col); if(Dist <= k){ return true; } if(i - c.row > k){ map.remove(c); } } map.get(mat[i][j]).add(new Cell(i, j)); } else{ map.put(mat[i][j], new HashSet
()); map.get(mat[i][j]).add(new Cell(i, j)); } } } return false;}
public boolean checkDuplicatesWithinK(int[][] matrix, int k) {        //convert matrix to an array        int[] arr = Arrays.stream(matrix)                .flatMapToInt(Arrays::stream)                .toArray();        // Creates an empty hashset        HashSet
set = new HashSet<>(); // Traverse the input array for (int i = 0; i < arr.length; i++) { // If already present n hash, then we found // a duplicate within k distance if (set.contains(arr[i])) return true; // Add this item to hashset set.add(arr[i]); // Remove the k+1 distant item if (i >= k) set.remove(arr[i - k]); } return false; }

转载地址:http://cmmka.baihongyu.com/

你可能感兴趣的文章
WPF:如何实现单实例的应用程序(Single Instance)
查看>>
C++问题-无法打开包括文件:“GLES2/gl2.h”
查看>>
ExecutorService invokeAll 实例(转)
查看>>
Atitit.常见的4gl 第四代编程语言 与 dsl
查看>>
Atitit.研发管理---api版本号策略与版本控制
查看>>
开源 免费 java CMS - FreeCMS2.1 会员站内信
查看>>
linux下安装Apache(https) 服务器证书安装配置指南
查看>>
[Algorithm & NLP] 文本深度表示模型——word2vec&doc2vec词向量模型
查看>>
网页编码就是那点事
查看>>
cf633F. The Chocolate Spree(树形dp)
查看>>
Linux Makefile 生成 *.d 依赖文件及 gcc -M -MF -MP 等相关选项说明【转】
查看>>
Centos7升级gcc版本方法之一使用scl软件集
查看>>
spark常见异常汇总
查看>>
react-router-dom Link search 传参
查看>>
uni-app 生命周期
查看>>
SpringBoot系列: Spring项目异常处理最佳实践
查看>>
bootstraptable toolbar
查看>>
Quartz.Net进阶之四:CronTrigger 详述
查看>>
从零学习Fluter(九):正式使用flutter进入商业开发
查看>>
转sql server新增、修改字段语句(整理)
查看>>