leetcode 959. 由斜杠劃分區域(并查集)

在由 1 x 1 方格組成的 N x N 網格 grid 中,每個 1 x 1 方塊由 /、\ 或空格構成。這些字符會將方塊劃分為一些共邊的區域。

(請注意,反斜杠字符是轉義的,因此 \ 用 “\” 表示。)。

返回區域的數目。

示例 1:

輸入:
[
" /",
"/ "
]
輸出:2

代碼

class Solution {int[] fa;public void  init(){for(int i=0;i<fa.length;i++)fa[i]=i;}public int  find(int x){if(x!=fa[x])fa[x]=find(fa[x]);return fa[x];}public void   union(int x,int y){x=find(x);y=find(y);if(x==y) return;fa[x]=y;}public int regionsBySlashes(String[] grid) {int n=grid.length;fa=new int[n*n*4];//將每個節點分成4份
//     \ 0/3 | 1
//     / 2\ init();for(int i=0;i<n;i++)for(int j=0;j<n;j++){int cur=i*n+j;//當前節點if(i<n-1)//與左邊節點的3號相鄰{union(cur*4+2,(n*(i+1)+j)*4);}if(j<n-1)//與下邊節點的0號相鄰union(cur*4+1,(i*n+j+1)*4+3);if(grid[i].charAt(j)=='\\') \\分成 0 12 3{union(cur*4,cur*4+1);union(cur*4+2,cur*4+3);}else if(grid[i].charAt(j)=='/')\\分成 0 32 1{union(cur*4,cur*4+3);union(cur*4+2,cur*4+1);}else {//分成 0 1 2 3union(cur * 4, cur * 4 + 3);union(cur * 4 + 2, cur * 4 + 1);union(cur * 4 + 2, cur * 4 + 3);}}Set<Integer> set=new HashSet<>();//計算連通分量的個數for(int i=0;i<n*n*4;i++){set.add(find(i));}return set.size();}
}

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

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

相關文章

rcu寬限期_如何處理寬限期錯誤:靜默失敗不是一種選擇

rcu寬限期by Rina Artstain通過麗娜阿斯特斯坦 I’ve never really had much of an opinion about error handling. This may come as a shock to people who know me as quite opinionated (in a good way!), but yeah. If I was coming into an existing code base I just d…

描述符、迭代器、生成器

描述符&#xff1a;將某種特殊類型的類的實例指派給另一個類的屬性。 此處特殊類型的要求&#xff0c;至少實現”__set__(self , instance , owner)“、”__get__(self , instance , value)“、”__delete__(self , instance )“三個方法中的一個。 >>> class MyDecri…

php模擬表單提交登錄,PHP模擬表單的post請求實現登錄

stuid > $stuid,pwd > $pwd);$ch curl_init (); //初始化curlcurl_setopt ( $ch, CURLOPT_URL, $uri );curl_setopt ( $ch, CURLOPT_POST, 1 ); //使用post請求curl_setopt ( $ch, CURLOPT_HEADER, 0 );curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );curl_setopt ( $…

去除list集合中重復項的幾種方法

因為用到list&#xff0c;要去除重復數據&#xff0c;嘗試了幾種方法。記錄于此。。。 測試數據&#xff1a; List<string> li1 new List<string> { "8", "8", "9", "9" ,"0","9"};List<string&g…

Crystal Reports第一張報表

新建一個網站項目&#xff0c;1. 設置數據庫 從服務器資源管理器中&#xff0c;數據連接中添加新連接&#xff0c;用Microsoft Access數據庫文件作為數據提供程序&#xff0c;連接上Crystal Reports的用例的數據庫Xtreme2. 創建新Crystal Reports報表 在工程項目中添加一個…

leetcode 1128. 等價多米諾骨牌對的數量

給你一個由一些多米諾骨牌組成的列表 dominoes。 如果其中某一張多米諾骨牌可以通過旋轉 0 度或 180 度得到另一張多米諾骨牌&#xff0c;我們就認為這兩張牌是等價的。 形式上&#xff0c;dominoes[i] [a, b] 和 dominoes[j] [c, d] 等價的前提是 ac 且 bd&#xff0c;或是…

海量數據尋找最頻繁的數據_尋找數據科學家的“原因”

海量數據尋找最頻繁的數據Start with “Why” - Why do we do the work we do?從“為什么”開始-我們為什么要做我們所做的工作&#xff1f; The question of “Why” is always a big question. Plus, it always makes you look smart in a meeting!“ 為什么 ”的問題始終是…

C語言中局部變量和全局變量 變量的存儲類別

C語言中局部變量和全局變量 變量的存儲類別(static,extern,auto,register) 局部變量和全局變量在討論函數的形參變量時曾經提到&#xff0c;形參變量只在被調用期間才分配內存單元&#xff0c;調用結束立即釋放。這一點表明形參變量只有在函數內才是有效的&#xff0c;離開該函…

營銷 客戶旅程模板_我如何在國外找到開發人員的工作:我從營銷到技術的旅程...

營銷 客戶旅程模板by Dimitri Ivashchuk由Dimitri Ivashchuk 我如何在國外找到開發人員的工作&#xff1a;我從營銷到技術的旅程 (How I got a developer job abroad: my journey from marketing to tech) In this post, I’ll go into the details of how I, a Ukrainian mar…

keepalive的作用

keepalive的作用是實現高可用,通過VIP虛擬IP的漂移實現高可用.在相同集群內發送組播包,master主通過VRRP協議發送組播包,告訴從主的狀態. 一旦主掛了從就選舉新的主,實現高可用 LVS專屬技能,通過配置文件控制lvs集群節點.對后端真實服務器進行健康檢查. 轉載于:https://www.cnb…

scrapy.Spider的屬性和方法

scrapy.Spider的屬性和方法 屬性: name:spider的名稱,要求唯一 allowed_domains:允許的域名,限制爬蟲的范圍 start_urls:初始urls custom_settings:個性化設置,會覆蓋全局的設置 crawler:抓取器,spider將綁定到它上面 custom_settings:配置實例,包含工程中所有的配置變量 logge…

php時間操作函數總結,基于php常用函數總結(數組,字符串,時間,文件操作)

數組:【重點1】implode(分隔,arr) 把數組值數據按指定字符連接起來例如&#xff1a;$arrarray(1,2,3,4);$strimplode(-,$arr);explode([分隔],arr)按指定規則對一個字符串進行分割&#xff0c;返回值為數組 別名joinarray_merge()合并一個或多個數組array_combine(array keys, …

kaggle比賽數據_表格數據二進制分類:來自5個Kaggle比賽的所有技巧和竅門

kaggle比賽數據This article was originally written by Shahul ES and posted on the Neptune blog.本文最初由 Shahul ES 撰寫&#xff0c; 并發布在 Neptune博客上。 In this article, I will discuss some great tips and tricks to improve the performance of your stru…

leetcode 1579. 保證圖可完全遍歷(并查集)

Alice 和 Bob 共有一個無向圖&#xff0c;其中包含 n 個節點和 3 種類型的邊&#xff1a; 類型 1&#xff1a;只能由 Alice 遍歷。 類型 2&#xff1a;只能由 Bob 遍歷。 類型 3&#xff1a;Alice 和 Bob 都可以遍歷。 給你一個數組 edges &#xff0c;其中 edges[i] [typei,…

別把“運氣”當“實力”

成功是兩分靠努力&#xff0c;八分靠天命–何英圻何英圻先生&#xff0c;大家口中的Steven&#xff0c;是臺灣網路創業圈的傳奇人物。他先后創辦力傳(Ubid)與興奇(Monday)兩家公司&#xff0c;最后都以高價出售給北美網路巨人—Ubid在2002年以美金950萬賣給eBay&#xff0c;而M…

品牌推廣前期要進行哪些針對性的步驟?

企業在品牌推廣前需要制訂一系列有針對性和連續性的步驟&#xff0c;這些步驟定睛于長期策略&#xff0c;而且要適應目標客戶的使用方式和習慣。在企業內部導入品牌VI是前提&#xff0c;外部的宣傳則是強調品牌所宣揚的內涵和精神實質&#xff0c;總體來說&#xff0c;這只是一…

php的set 容器,關于STL中set容器的一些總結

1.關于setC STL 之所以得到廣泛的贊譽&#xff0c;也被很多人使用&#xff0c;不只是提供了像vector, string, list等方便的容器&#xff0c;更重要的是STL封裝了許多復雜的數據結構算法和大量常用數據結構操作。vector封裝數組&#xff0c;list封裝了鏈表&#xff0c;map和set…

強化學習應用于組合優化問題_如何將強化學習應用于現實生活中的計劃問題

強化學習應用于組合優化問題by Sterling Osborne, PhD Researcher作者&#xff1a;斯特林奧斯本(Sterling Osborne)&#xff0c;博士研究員 如何將強化學習應用于現實生活中的計劃問題 (How to apply Reinforcement Learning to real life planning problems) Recently, I hav…

導入導出報錯

導入導出報錯&#xff1a;另&#xff1a;右鍵--共享&#xff1a;停止共享&#xff1b;可能無效。此時&#xff0c;可以通過修改文件夾的權限&#xff0c;來達到停止共享的目的&#xff1b;轉載于:https://www.cnblogs.com/chenjx/p/7107336.html

leetcode 724. 尋找數組的中心索引

給定一個整數類型的數組 nums&#xff0c;請編寫一個能夠返回數組 “中心索引” 的方法。 我們是這樣定義數組 中心索引 的&#xff1a;數組中心索引的左側所有元素相加的和等于右側所有元素相加的和。 如果數組不存在中心索引&#xff0c;那么我們應該返回 -1。如果數組有多…