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 HashSetset = 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://specialneedsforspecialkids.com/yun/64971.html
I complete reading JavaScript Enlightenment recently. The book is more about basics in JavaScript and suitable for beginners. Here are a list of my benefits and extensions from the book. Math JavaScri...
摘要:我的博客大家都知道解決了回調地獄的問題。這就是異步的嵌套帶來的可讀性的問題,它是由異步的運行機制引起的。在與第三方團隊溝通之后問題得到了解決。這不但使代碼變得臃腫不堪,還進一步加劇了可讀性的問題。的特征保證了可以解決信任問題。 我的github博客 https://github.com/zhuanyongxigua/blog 大家都知道Promise解決了回調地獄的問題。說到回調地獄,...
摘要:為了控制壓測時的,則需要實現邏輯。則是獲取屬性并初始化客戶端客戶端配置則提供了設置泛化調用入參的以及接下來要介紹的部分的全鏈路壓測中,我們都使用校驗請求結果,壓測插件中,我們也實現了基于的校驗。 Dubbo 壓測插件已開源,本文涉及代碼詳見gatling-dubbo Gatling 是一個開源的基于 Scala、Akka、Netty 實現的高性能壓測框架,較之其他基于線程實現的壓測框架...
摘要:為了控制壓測時的,則需要實現邏輯。則是獲取屬性并初始化客戶端客戶端配置則提供了設置泛化調用入參的以及接下來要介紹的部分的全鏈路壓測中,我們都使用校驗請求結果,壓測插件中,我們也實現了基于的校驗。 Dubbo 壓測插件已開源,本文涉及代碼詳見gatling-dubbo Gatling 是一個開源的基于 Scala、Akka、Netty 實現的高性能壓測框架,較之其他基于線程實現的壓測框架...
閱讀 2980·2021-11-16 11:45
閱讀 5124·2021-09-22 10:57
閱讀 1763·2021-09-08 09:36
閱讀 1585·2021-09-02 15:40
閱讀 2508·2021-07-26 23:38
閱讀 1184·2019-08-30 15:55
閱讀 923·2019-08-30 15:54
閱讀 1213·2019-08-29 14:06