内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

python實(shí)現(xiàn)不鄰接植花的方法-創(chuàng)新互聯(lián)

這篇文章主要講解了python實(shí)現(xiàn)不鄰接植花的方法,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。

為扎囊等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及扎囊網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)、扎囊網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

有 N 個(gè)花園,按從 1 到 N 標(biāo)記。在每個(gè)花園中,你打算種下四種花之一。

paths[i] = [x, y] 描述了花園 x 到花園 y 的雙向路徑。

另外,沒有花園有 3 條以上的路徑可以進(jìn)入或者離開。

你需要為每個(gè)花園選擇一種花,使得通過路徑相連的任何兩個(gè)花園中的花的種類互不相同。

以數(shù)組形式返回選擇的方案作為答案 answer,其中 answer[i] 為在第 (i+1) 個(gè)花園中種植的花的種類?;ǖ姆N類用 1, 2, 3, 4 表示。保證存在答案。

示例 1:

輸入:N = 3, paths = [[1,2],[2,3],[3,1]]

輸出:[1,2,3]

示例 2:

輸入:N = 4, paths = [[1,2],[3,4]]

輸出:[1,2,1,2]

示例 3:

輸入:N = 4, paths = [[1,2],[2,3],[3,4],[4,1],[1,3],[2,4]]

輸出:[1,2,3,4]

提示:

1 <= N <= 10000
0 <= paths.size <= 20000

不存在花園有 4 條或者更多路徑可以進(jìn)入或離開。
保證存在答案。

知識(shí)準(zhǔn)備

在python中可以使用列表作為隊(duì)列,list用append添加元素

可以用字典來存儲(chǔ)鄰接節(jié)點(diǎn)nei = {}

在集合中使用for循環(huán)

{res[j] for j in G[i]}

集合的pop函數(shù)

flowers = {1,2,3,4} #集合直接相減即可
flowers.pop()
# 集合不能獲取某個(gè)元素這樣子的操作
print(flowers)

out: {2,3,4}集合中的pop是從左邊開始取

集合的相減

flowers = {1,2,3,4}
h = {0}
flowers-h

out:{1,2,3,4}

我的題解

題解1

 
 class Solution:
   # 整體思路采用BFS方法,還需考慮不連通圖的問題,然后著手結(jié)果唯一
   def gardenNoAdj(self, N: int, paths: List[List[int]]) -> List[int]:
     #構(gòu)建一個(gè)answer數(shù)組
     answer = [0 for _ in range(N)]
     #構(gòu)建所有節(jié)點(diǎn)
     all_nodes = []
     [all_nodes.append(i) for i in range(1,N+1)]
     #構(gòu)建visted列表
     visted = dict.fromkeys(all_nodes, 0)
     #初始化nei字典元素為空列表
     nei = [[] for _ in range(N)]
     # 構(gòu)建無向鄰接表,無鄰居則不構(gòu)建
     for path in paths:
       nei[path[0]-1].append(path[1])
       nei[path[1]-1].append(path[0])
     #遍歷每一個(gè)點(diǎn),每個(gè)點(diǎn)保證自己鄰接點(diǎn)不是和自己相同就行
     answer[0] = 1 
     for node in range(1,N+1):  #遍歷所有節(jié)點(diǎn)
       visted[node] = 1
       fix = set()
       if(answer[node-1]==0): #如果為0,說明不是連通圖
         answer[node-1] = 1 
       flowers=[1,2,3,4]
       nei[node-1] = sorted(nei[node-1]) #排序鄰居節(jié)點(diǎn)
       flowers.pop(answer[node-1]-1) #彈出父節(jié)點(diǎn)的flowers
       for sinode in nei[node-1]: #遍歷鄰居
         if(visted[sinode] == 0): #如果鄰居未被訪問過
           answer[sinode-1] = flowers[0] #使用1,彈出1
           flowers.pop(0)
         else: #如果鄰居被訪問過
           if(answer[sinode-1]==answer[node-1]):
             answer[node-1] = flowers[0] 
             flowers.pop(0) 
           fix.add(answer[sinode-1])
       if not fix:
         continue
       else:
         flowers=[1,2,3,4]
         for a_val in list(fix):
           flowers.remove(a_val)
         answer[node-1] = flowers[0]
             
     return answer 

當(dāng)前標(biāo)題:python實(shí)現(xiàn)不鄰接植花的方法-創(chuàng)新互聯(lián)
當(dāng)前URL:http://www.rwnh.cn/article2/coieic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、網(wǎng)站收錄、網(wǎng)站排名、品牌網(wǎng)站設(shè)計(jì)、用戶體驗(yàn)手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
丹巴县| 明水县| 屏边| 霍林郭勒市| 元阳县| 五指山市| 尖扎县| 雷波县| 仪征市| 海宁市| 维西| 宽城| 铁力市| 南雄市| 西昌市| 渭南市| 惠来县| 伊吾县| 镇远县| 海林市| 南华县| 宁强县| 伊金霍洛旗| 保康县| 康乐县| 仁怀市| 云霄县| 龙里县| 兴仁县| 通州市| 子长县| 陆河县| 章丘市| 乳源| 辽阳县| 若尔盖县| 巴彦淖尔市| 琼结县| 松阳县| 博白县| 杭州市|