LeetCode2352相等行列對

題目描述

??給你一個下標從 0 開始、大小為 n x n 的整數矩陣 grid ,返回滿足 Ri 行和 Cj 列相等的行列對 (Ri, Cj) 的數目。如果行和列以相同的順序包含相同的元素(即相等的數組),則認為二者是相等的。

解析

??針對題目給出的數量級,暴力是最合適的,過于簡單就不詳述了,如果數量級過大,可以將每行每列的元素合成字符串然后通過set比較

public int equalPairs(int[][] grid) {int res = 0;Map<String, Integer> rowMap = new HashMap<>();// 將每一行的數據轉換為字符串并存儲在哈希表中,記錄每種模式的出現次數for (int[] row : grid) {StringBuilder sb = new StringBuilder();for (int value : row) {sb.append(value).append(",");  // 添加分隔符防止數字合并}String rowString = sb.toString();rowMap.put(rowString, rowMap.getOrDefault(rowString, 0) + 1);}// 遍歷每一列,將列數據轉換為與行相同的字符串格式for (int j = 0; j < grid[0].length; j++) {StringBuilder sb = new StringBuilder();for (int i = 0; i < grid.length; i++) {sb.append(grid[i][j]).append(",");}String colString = sb.toString();// 如果行哈希表中存在該列字符串,則增加相應的配對數量res += rowMap.getOrDefault(colString, 0);}return res;}

??這種方式在題目的輸入下其實可以更加簡化,不轉為字符串而是轉為數字,然后比較數字是否相等,可以大大減少復雜度。
public int equalPairs(int[][] grid) {
int n = grid.length;
int[] row = new int[n];
int[] col = new int[n];
for(int i=0;i<n;i++){
row[i] = grid[i][0];
col[i] = grid[0][i];
for(int j=1;j<n;j++){
row[i] += grid[i][j] * j * 10;
col[i] += grid[j][i] * j * 10;
}
}
int num = 0;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(row[i] == col[j]){
num++;
}
}
}

    return num;   
}

在這里插入圖片描述

??此題還有前綴樹解法,,通過樹形結構記錄每行的元素,然后對每列在樹上查找,對于大量數據效率較高,此題時間復雜度高。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/12810.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/12810.shtml
英文地址,請注明出處:http://en.pswp.cn/web/12810.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

cubemx配置stm32f407VET6實現can通信

背景&#xff1a; 項目上需要把原先的TMC5160電機驅動器替換為購買的電機控制模塊&#xff08;該模塊采用canopen通信&#xff09; 移植canopen的前提是can通信正常&#xff0c;現在添加一下can通信&#xff08;先用標準幀&#xff0c;250K bit/S的波特率測試&#xff09; 原理…

個人學習計劃

vue前端&#xff08;一周&#xff09; 05/14 - 05/19 Html、css復習、vue基礎復習、axios復習 05/14 ElementUI學習 05/15 JWT集成驗證碼、token 05/16 vue-route多角色登錄 05/17 增刪查改、文件下載 05/18 Echart餅狀圖 05/19 &#x1f4cc; 附加學習&#xff1a; 父子傳值三…

其它高階數據結構②_圖(概念+存儲+遍歷+最小生成樹)

目錄 1. 圖的概念 2. 圖的存儲結構 2.1 鄰接矩陣&#xff08;后面算法所用&#xff09; 2.2 鄰接表 3. 圖的遍歷 3.1 BFS廣度優先遍歷 3.2 DFS深度優先遍歷 4. 最小生成樹 4.1 Kruskal算法 4.2 Prim算法 本篇完。 1. 圖的概念 圖是由頂點集合及頂點間的關系組成的一…

重磅!麒麟信安發布CentOS安全加固套件

CentOS Linux 7系統即將在6月30日停服&#xff0c;標志CentOS全部停止更新和維護。黨政、金融、能源、通信、交通、公共服務等關鍵信息基礎設施領域已經投運使用的CentOS系統將無法獲取官方提供的漏洞修復補丁&#xff0c;此后&#xff0c;CentOS系統將面臨巨大的安全風險與危害…

【運維項目經歷|003】:Nginx集群化運維升級項目

目錄 項目名稱 項目背景 項目目標 項目成果 我的角色與職責 我主要完成的工作內容 本次項目涉及的技術 本次項目遇到的問題與解決方法 本次項目中可能被面試官問到的問題 問題1&#xff1a;為什么選擇nginx-1.25.4版本&#xff0c;nginx官方最新版本是哪一個版本&…

河南廣電與LiblibAI簽署戰略合作協議

5月15日&#xff0c;河南廣電科技與LiblibAI戰略簽約儀式在鄭州中原福塔新聞發布廳隆重舉行。雙方將本著“共商、共享、共建、共贏”原則&#xff0c;基于全面、可持續的戰略合作伙伴關系&#xff0c;發揮各自優勢&#xff0c;共同聚焦生成式AI領域&#xff0c;圍繞內容創作、商…

CPU占用率過高排查

CPU占用率高是設備本身的一種現象&#xff0c;直觀表現為display cpu-usage命令查詢結果中整機CPU占用率“CPU usage”偏高&#xff0c;如超過70%。在網絡運行中CPU高常常會導致其他業務異常&#xff0c;如BGP震蕩、VRRP頻繁切換、甚至設備無法登錄。 通常&#xff0c;整機CPU占…

Java基礎教程 - 7 面向對象-1

更好的閱讀體驗&#xff1a;點這里 &#xff08; www.doubibiji.com &#xff09; 更好的閱讀體驗&#xff1a;點這里 &#xff08; www.doubibiji.com &#xff09; 更好的閱讀體驗&#xff1a;點這里 &#xff08; www.doubibiji.com &#xff09; 7 面向對象 面向對象&am…

無人售貨奶柜:掘金新零售藍海,

無人售貨奶柜&#xff1a;掘金新零售藍海&#xff0c; 在日新月異的商業浪潮中&#xff0c;無人奶柜猶如一股清新的創業颶風&#xff0c;正以不可阻擋之勢吸引著眾多創業者的目光。這股新興力量以其獨到之處和龐大的市場藍海&#xff0c;預示著一場關于健康、便捷消費方式的深…

【C#】DateTime類型數組含有null?并排序

代碼 internal class Program{static void Main(string[] args){List<DateTime?> dateTimes new List<DateTime?> { null,DateTime.MinValue,DateTime.MaxValue};var temp new List<DateTime?> { };dateTimes.Sort();//dateTimes.Reverse();foreach (va…

石碑之謎:滾動機關

描述 在蒙德和璃月的邊界地帶&#xff0c;有一個被遺忘的神廟&#xff0c;里面有一個奇怪的機關&#xff1a;滾動石碑。小熊必須操作這個112的長方體石碑&#xff0c;使其通過不同的地面環境&#xff0c;最終放置到神秘的符號“O”上&#xff0c;以解開通往寶藏的大門。 石碑…

Edwards愛德華PHM3000培訓PPT課件內容可見圖片詳情

Edwards愛德華PHM3000培訓PPT課件內容可見圖片詳情

golang encoding/json 使用基礎

json 與 encoding/json JSON&#xff08;JavaScript Object Notation&#xff09;是一種輕量級的數據交換格式&#xff0c;它基于 ECMAScript&#xff08;歐洲計算機協會制定的js規范&#xff09;的一個子集&#xff0c;采用完全獨立于語言的文本格式來存儲和表示數據。簡潔和…

SDL系列(一)—— 小白入門

SDL &#xff08; Simple DirectMedia Layer &#xff09; 是一套開放源代碼的 跨平臺多媒體開發庫 &#xff0c;使用 C 語 言寫成。 SDL 提供了數種控制圖像、聲音、輸出入的函數&#xff0c;讓開發者只要用相同或是相似的 代碼就可以開發出 跨多個平臺&#xff08; Linu…

618有什么劃算的數碼產品?4款精選數碼好物清單分享,趕緊碼住!

隨著618購物節慢慢開始&#xff0c;數碼產品的大門已經向你敞開&#xff0c;等你來發現里面的各種樂趣。在這個購物的好時節&#xff0c;我們為你準備了一些很不錯的數碼東西&#xff0c;不管是喜歡新鮮科技的你&#xff0c;還是需要實用小工具的朋友們&#xff0c;這里都有可能…

安卓、iOS、iPad三端搞定,不再劇荒!

哈嘍&#xff0c;各位小伙伴們好&#xff0c;我是給大家帶來各類黑科技與前沿資訊的小武。 之前給大家推薦過各種看劇姿勢&#xff0c;但很多蘋果、平板端的小伙伴還是存在更好的需求體驗&#xff0c;今天給大家推薦這款可以在安卓、iOS和平板上都能安裝使用&#xff0c;不再劇…

2024自學網絡安全的三個必經階段(含路線圖)_網絡安全自學路線

一、為什么選擇網絡安全&#xff1f; 這幾年隨著我國《國家網絡空間安全戰略》《網絡安全法》《網絡安全等級保護2.0》等一系列政策/法規/標準的持續落地&#xff0c;網絡安全行業地位、薪資隨之水漲船高。 未來3-5年&#xff0c;是安全行業的黃金發展期&#xff0c;提前踏入…

基于Django的圖書管理系統

文章目錄 前言一、頁面展示1.登錄2.前端頁面3.后端頁面 總結 前言 本網站調用Django編寫了圖書管理網站&#xff0c;可以在后端控制書籍&#xff0c;前端進行書籍預覽 一、頁面展示 1.登錄 2.前端頁面 3.后端頁面 — ![在這里插入圖片描述](https://img-blog.csdnimg.cn/dir…

低功耗音頻編解碼器CJC8990

由工采網代理的CJC8990是一款低功耗音頻編解碼器&#xff0c;擁有先進的功能并提供高質量音頻&#xff0c;非常適合于便攜式數字音頻應用&#xff0c;支持多種音頻數據格式&#xff0c;包括I2S, DSP模式。 產品介紹&#xff1a; 該芯片工作電壓&#xff1a;1.5V&#xff5e;3…

甲方運營工具——安天威脅情報中心每日熱點事件爬取

一、背景 本次是采用python爬取安天威脅情報中心的每日熱點事件,進行甲方內部威脅情報同步的這樣一個需求開發。 界面及內容: 二、逐步實現 2.1、分析請求頁面的數據來源 通過請求頁面我們看到安天對于第三方引用這些內容的真實性等是不予負責的;我們看到該頁面的數據來源…