chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

益智游戲克星:BFS暴力搜索算法

算法與數(shù)據(jù)結(jié)構(gòu) ? 來源:算法與數(shù)據(jù)結(jié)構(gòu) ? 2020-08-03 16:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

滑動拼圖游戲大家應(yīng)該都玩過,下圖是一個 4x4 的滑動拼圖:

拼圖中有一個格子是空的,可以利用這個空著的格子移動其他數(shù)字。你需要通過移動這些數(shù)字,得到某個特定排列順序,這樣就算贏了。

我小時候還玩過一款叫做「華容道」的益智游戲,也和滑動拼圖比較類似:

那么這種游戲怎么玩呢?我記得是有一些套路的,類似于魔方還原公式。但是我們今天不來研究讓人頭禿的技巧,這些益智游戲通通可以用暴力搜索算法解決,所以今天我們就學(xué)以致用,用 BFS 算法框架來秒殺這些游戲。

一、題目解析

LeetCode 第 773 題就是滑動拼圖問題,題目的意思如下:

給你一個 2x3 的滑動拼圖,用一個 2x3 的數(shù)組board表示。拼圖中有數(shù)字 0~5 六個數(shù),其中數(shù)字 0 就表示那個空著的格子,你可以移動其中的數(shù)字,當(dāng)board變?yōu)閇[1,2,3],[4,5,0]]時,贏得游戲。

請你寫一個算法,計算贏得游戲需要的最少移動次數(shù),如果不能贏得游戲,返回 -1。

比如說輸入的二維數(shù)組board = [[4,1,2],[5,0,3]],算法應(yīng)該返回 5:

如果輸入的是board = [[1,2,3],[4,0,5]],則算法返回 -1,因為這種局面下無論如何都不能贏得游戲。

二、思路分析

對于這種計算最小步數(shù)的問題,我們就要敏感地想到 BFS 算法。

這個題目轉(zhuǎn)化成 BFS 問題是有一些技巧的,我們面臨如下問題:

1、一般的 BFS 算法,是從一個起點start開始,向終點target進行尋路,但是拼圖問題不是在尋路,而是在不斷交換數(shù)字,這應(yīng)該怎么轉(zhuǎn)化成 BFS 算法問題呢?

2、即便這個問題能夠轉(zhuǎn)化成 BFS 問題,如何處理起點start和終點target?它們都是數(shù)組哎,把數(shù)組放進隊列,套 BFS 框架,想想就比較麻煩且低效。

首先回答第一個問題,BFS 算法并不只是一個尋路算法,而是一種暴力搜索算法,只要涉及暴力窮舉的問題,BFS 就可以用,而且可以最快地找到答案。

你想想計算機怎么解決問題的?哪有那么多奇技淫巧,本質(zhì)上就是把所有可行解暴力窮舉出來,然后從中找到一個最優(yōu)解罷了。

明白了這個道理,我們的問題就轉(zhuǎn)化成了:如何窮舉出board當(dāng)前局面下可能衍生出的所有局面?這就簡單了,看數(shù)字 0 的位置唄,和上下左右的數(shù)字進行交換就行了:

這樣其實就是一個 BFS 問題,每次先找到數(shù)字 0,然后和周圍的數(shù)字進行交換,形成新的局面加入隊列…… 當(dāng)?shù)谝淮蔚竭_target時,就得到了贏得游戲的最少步數(shù)。

對于第二個問題,我們這里的board僅僅是 2x3 的二維數(shù)組,所以可以壓縮成一個一維字符串。其中比較有技巧性的點在于,二維數(shù)組有「上下左右」的概念,壓縮成一維后,如何得到某一個索引上下左右的索引?

很簡單,我們只要手動寫出來這個映射就行了:

vector>neighbor={ {1,3}, {0,4,2}, {1,5}, {0,4}, {3,1,5}, {4,2} };

這個含義就是,在一維字符串中,索引i在二維數(shù)組中的的相鄰索引為neighbor[i],:

至此,我們就把這個問題完全轉(zhuǎn)化成標(biāo)準(zhǔn)的 BFS 問題了,借助前文BFS 算法框架套路詳解的代碼框架,直接就可以套出解法代碼了:

intslidingPuzzle(vector>&board){ intm=2,n=3; stringstart=""; stringtarget="123450"; //將2x3的數(shù)組轉(zhuǎn)化成字符串 for(inti=0;i>neighbor={ {1,3}, {0,4,2}, {1,5}, {0,4}, {3,1,5}, {4,2} }; /*******BFS算法框架開始*******/ queueq; unordered_setvisited; q.push(start); visited.insert(start); intstep=0; while(!q.empty()){ intsz=q.size(); for(inti=0;i

至此,這道題目就解決了,其實框架完全沒有變,套路都是一樣的,我們只是花了比較多的時間將滑動拼圖游戲轉(zhuǎn)化成 BFS 算法。

很多益智游戲都是這樣,雖然看起來特別巧妙,但都架不住暴力窮舉,常用的算法就是回溯算法或者 BFS 算法,感興趣的話我們以后再聊。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4759

    瀏覽量

    97112
  • 數(shù)組
    +關(guān)注

    關(guān)注

    1

    文章

    420

    瀏覽量

    27104

原文標(biāo)題:益智游戲克星:BFS暴力搜索算法

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    線性搜索與二分搜索介紹

    搜索算法,搜索過程從數(shù)組的中間元素開始,如果中間元素正好是要查找的元素,則搜索過程結(jié)束;如果某一特定元素大于或者小于中間元素,則在數(shù)組大于或小于中間元素的那一半中查找,而且跟開始一樣從中間元素開始比較。
    發(fā)表于 12-01 07:36

    京東拍立淘API開發(fā)指南:從零開始構(gòu)建圖像搜索應(yīng)用

    京東圖片識別搜索API(拍立淘)是基于深度學(xué)習(xí)的視覺搜索服務(wù),通過卷積神經(jīng)網(wǎng)絡(luò)提取圖像特征向量,結(jié)合近似最近鄰搜索算法實現(xiàn)商品精準(zhǔn)匹配?。該技術(shù)解決了傳統(tǒng)文字搜索難以描述商品外觀的痛點
    的頭像 發(fā)表于 11-09 17:40 ?1940次閱讀

    模數(shù)轉(zhuǎn)換器主要類型有哪些

    模數(shù)轉(zhuǎn)換器采用逐步比較逼近策略,通過二進制搜索算法將模擬信號轉(zhuǎn)換為數(shù)字值。這類轉(zhuǎn)換器在轉(zhuǎn)換速度和精度之間實現(xiàn)了良好平衡,廣泛應(yīng)用于中等采樣速率和中等精度的場景,如工業(yè)控制系統(tǒng)和醫(yī)療儀器。
    的頭像 發(fā)表于 11-03 16:36 ?426次閱讀

    領(lǐng)益智造:人形機器人業(yè)務(wù)已產(chǎn)生收入

    10月23日領(lǐng)益智造在互動平臺透露;人形機器人業(yè)務(wù)已經(jīng)產(chǎn)生收入;目前已獲得海內(nèi)外機器人客戶的硬件訂單,包括有零部件、靈巧手、關(guān)節(jié)模組、整機組裝等。但并未透露海外具體的客戶名稱,以及具體的訂單金額
    的頭像 發(fā)表于 10-23 11:29 ?1049次閱讀

    微店關(guān)鍵詞搜索接口核心突破:動態(tài)權(quán)重算法與語義引擎的實戰(zhàn)落地

    本文詳解微店搜索接口從基礎(chǔ)匹配到智能推薦的技術(shù)進階路徑,涵蓋動態(tài)權(quán)重、語義理解與行為閉環(huán)三大創(chuàng)新,助力商家提升搜索轉(zhuǎn)化率、商品曝光與用戶留存,實現(xiàn)技術(shù)驅(qū)動的業(yè)績增長。
    的頭像 發(fā)表于 10-15 14:38 ?218次閱讀

    用拼多多 API 實現(xiàn)拼多多店鋪商品搜索權(quán)重提升

    將分步講解如何利用 API 實現(xiàn)這一目標(biāo),確保內(nèi)容真實可靠。 1. 理解搜索權(quán)重及其重要性 搜索權(quán)重是平臺算法對商品排名的綜合評分,基于多個因素計算。例如: 關(guān)鍵詞相關(guān)性:商品標(biāo)題和描述與用戶
    的頭像 發(fā)表于 08-19 17:23 ?499次閱讀
    用拼多多 API 實現(xiàn)拼多多店鋪商品<b class='flag-5'>搜索</b>權(quán)重提升

    仁懋MOS:暴力風(fēng)扇高效運轉(zhuǎn)的幕后功臣

    暴力風(fēng)扇的世界里,每一次強勁風(fēng)力的輸出,都離不開眾多精密器件的協(xié)同工作。而仁懋電子的MOSFET(金屬氧化物半導(dǎo)體場效應(yīng)晶體管),憑借其出色的性能,成為了暴力風(fēng)扇產(chǎn)品的關(guān)鍵選擇。下面,就為大家?guī)?/div>
    的頭像 發(fā)表于 07-24 17:43 ?669次閱讀
    仁懋MOS:<b class='flag-5'>暴力</b>風(fēng)扇高效運轉(zhuǎn)的幕后功臣

    【HarmonyOS next】ArkUI-X休閑益智連連看【進階】

    ;: 統(tǒng)一UI描述:ArkTS聲明式語法在雙端生成原生UI組件 共享核心邏輯:TypeScript編寫的游戲算法(如BFS路徑搜索)直接復(fù)用 原生渲染引擎:各平臺使用系統(tǒng)原生渲染管線(
    發(fā)表于 06-28 21:51

    【HarmonyOS next】ArkUI-X休閑益智猜字謎【基礎(chǔ)】

    下圖是在iOS中的運行效果 下圖是在HarmonyOS中的運行效果 今天咱們來聊聊如何用ArkUI-X這個新興框架實現(xiàn)跨端開發(fā),通過一個猜字謎小游戲帶大家感受它的開發(fā)魅力。本文不僅能讓你看到
    發(fā)表于 06-26 20:01

    笙泉高轉(zhuǎn)速暴力風(fēng)扇控制方案(MDF101A)登場

    本帖最后由 noctor 于 2025-5-21 10:32 編輯 笙泉高轉(zhuǎn)速\"暴力風(fēng)扇\"控制方案(MDF101A)登場 手持暴力風(fēng)扇需求穩(wěn)定成長 隨著全球氣溫
    發(fā)表于 05-20 15:32

    百度搜索與文心智能體平臺接入DeepSeek及文心大模型深度搜索

    夠免費使用DeepSeek和文心大模型的深度搜索功能。這一功能不僅融合了先進的搜索算法,還借助文心大模型的強大能力,實現(xiàn)了對信息的深度挖掘和精準(zhǔn)匹配。用戶在進行搜索時,將能夠獲得更加全面、準(zhǔn)確的結(jié)果,滿足多樣化的需求。 同時,文
    的頭像 發(fā)表于 02-17 09:14 ?956次閱讀

    領(lǐng)益智造與XREAL合作,深耕XR產(chǎn)業(yè)

    近日,領(lǐng)益智造在互動平臺上明確表示,公司在XR(擴展現(xiàn)實)產(chǎn)業(yè)領(lǐng)域已深耕多年,專注于為AR(增強現(xiàn)實)、VR(虛擬現(xiàn)實)、MR(混合現(xiàn)實)等智能穿戴設(shè)備提供核心組件和技術(shù)支持。作為該領(lǐng)域的佼佼者,領(lǐng)
    的頭像 發(fā)表于 01-14 10:19 ?1867次閱讀

    基于PY32MD310單片機開發(fā)的11萬轉(zhuǎn)強力渦輪暴力風(fēng)扇方案介紹

    今天給大家介紹下我們的11萬轉(zhuǎn)高速暴力風(fēng)扇方案,搭載了11萬轉(zhuǎn)高性能無刷電機、采用獨特旋鈕設(shè)計產(chǎn)出更大風(fēng)力。暴力風(fēng)扇在日常生活中有著很好的應(yīng)用??梢杂米鲆恍╇娮赢a(chǎn)品清灰,寵物毛發(fā)吹干,除塵助燃等
    的頭像 發(fā)表于 01-02 17:52 ?1558次閱讀

    算法到生命,自動化人工生命搜索已然顯現(xiàn)?

    」像生命體一樣運作。 ASAL 其中一位研究者 Phillip Isola 近日,Sakana AI團隊攜手麻省理工學(xué)院(MIT)、開放人工智能研究院(OpenAI)以及瑞士AI實驗室IDSIA等機構(gòu)研究人員,共同提出了“自動化人工生命搜索”(ASAL)的新算法。 尤其,
    的頭像 發(fā)表于 12-31 10:54 ?767次閱讀
    從<b class='flag-5'>算法</b>到生命,自動化人工生命<b class='flag-5'>搜索</b>已然顯現(xiàn)?

    ChatGPT新增實時搜索與高級語音功能

    。OpenAI對搜索算法進行了深度優(yōu)化,使得ChatGPT能夠在用戶提出問題后,迅速獲取到分鐘級別的最新信息,包括股票、新聞等。這一功能的加入,極大地滿足了用戶對即時數(shù)據(jù)的需求,使得ChatGPT在各類應(yīng)用場景中更加得心應(yīng)手。 同時,ChatGPT還推出了高級語音功能。在高級語
    的頭像 發(fā)表于 12-17 14:08 ?913次閱讀