sponsored links

2022-02-15:掃地機器人。 房間(用格柵表示)中有一個掃地機器人

2022-02-15:掃地機器人。

房間(用格柵表示)中有一個掃地機器人。

格柵中的每一個格子有空和障礙物兩種可能。

掃地機器人提供4個API,可以向前進,向左轉或者向右轉。每次轉彎90度。

當掃地機器人試圖進入障礙物格子時,它的碰撞感測器會探測出障礙物,使它停留在原地。

請利用提供的4個API編寫讓機器人清理整個房間的演算法。

interface Robot {

// 若下一個方格為空,則返回true,並移動至該方格

// 若下一個方格為障礙物,則返回false,並停留在原地

boolean move();

// 在呼叫turnLeft/turnRight後機器人會停留在原位置

// 每次轉彎90度

void turnLeft();

void turnRight();

// 清理所在方格

void clean();

}

輸入:

room = [

[1,1,1,1,1,0,1,1],

[1,1,1,1,1,0,1,1],

[1,0,1,1,1,1,1,1],

[0,0,0,1,0,0,0,0],

[1,1,1,1,1,1,1,1]

],

row = 1,

col = 3

解析:

房間格柵用0或1填充。0表示障礙物,1表示可以透過。

機器人從row=1,col=3的初始位置出發。在左上角的一行以下,三列以右。

注意:

輸入只用於初始化房間和機器人的位置。你需要“盲解”這個問題。

換而言之,你必須在對房間和機器人位置一無所知的情況下,只使用4個給出的API解決問題。

掃地機器人的初始位置一定是空地。

掃地機器人的初始方向向上。

所有可抵達的格子都是相連的,亦即所有標記為1的格子機器人都可以抵達。

可以假定格柵的四周都被牆包圍。

力扣489。

答案2022-02-15:

map記錄走過的路。

0上,1右,2下,3左。

遞迴。

程式碼用golang編寫。程式碼如下:

package main

import "strconv"

func main() {

}

// 不要提交這個介面的內容
type Robot interface {
    move() bool

    turnLeft()

    turnRight()

    clean()
}

// 提交下面的內容
func cleanRoom(robot Robot) {
    clean(robot, 0, 0, 0, make(map[string]struct{}))
}

var ds = [][]int{{-1, 0}, {0, 1}, {1, 0}, {0, -1}}

// 機器人robot,
// 當前來到的位置(x,y),且之前沒來過
// 機器人臉衝什麼方向d,0 1 2 3
// visited裡記錄了機器人走過哪些位置
// 函式的功能:不要重複走visited裡面的位置,把剩下的位置,都打掃乾淨!
//           而且要回去!
func clean(robot Robot, x, y, d int, visited map[string]struct{}) {
    robot.clean()
    visited[strconv.Itoa(x)+"_"+strconv.Itoa(y)] = struct{}{}
    for i := 0; i < 4; i++ {
        // d = 0 :  0 1 2 3
        // d = 1 :  1 2 3 0
        // d = 2 :  2 3 0 1
        // d = 3 :  3 0 1 2
        // 下一步的方向!
        nd := (i + d) % 4
        // 當下一步的方向定了!下一步的位置在哪?(nx, ny)
        nx := ds[nd][0] + x
        ny := ds[nd][1] + y
        _, ok := visited[strconv.Itoa(nx)+"_"+strconv.Itoa(ny)]
        if !ok && robot.move() {
            clean(robot, nx, ny, nd, visited)
        }
        robot.turnRight()
    }
    // 負責回去:之前的位置,怎麼到你的!你要回去,而且方向和到你之前,要一致!
    robot.turnRight()
    robot.turnRight()
    robot.move()
    robot.turnRight()
    robot.turnRight()
}

***

[左神java程式碼](https://github.com/algorithmzuo/coding-for-great-offer/blob/main/src/class49/Problem_0548_SplitArrayEithEqualSum.java)

分類: 農業
時間: 2022-01-31

相關文章

客家人的殺豬菜:八刀湯
由於一貫好吃,所以總喜歡看美食節目.今晚頭條為我推送了幾套美食節目,最為吸引眼球的是東北的殺豬菜.我邊看邊流口水,彷彿那一鍋香噴噴的殺豬菜就在眼前,那色.香.味揪著吊著胃口,想吃又吃不到,那滋味,真難 ...

入秋了,多吃這道燉菜,好吃滋補不上火,營養高易消化,真香啊

入秋了,多吃這道燉菜,好吃滋補不上火,營養高易消化,真香啊
導語:入秋後,這道燉菜要多吃,有菜有肉味道香,營養高易消化,太香了! 俗話說得好"人間煙火氣,最撫凡人心",閒品歲月,慢煮時光,在每一碗人間煙火中暢享人生,便是最好的生活.大家好, ...

孩子的解饞菜,從可樂雞翅開始,一步步教你做法,成功率很高

孩子的解饞菜,從可樂雞翅開始,一步步教你做法,成功率很高
孩子們對食物好吃與否有著自己獨特的評定標準,但大多對酸甜可口的食物更感興趣.酸酸甜甜的食物更能刺激孩子們的味蕾,得到他們的偏愛.可樂雞翅並不是雞肉的傳統做法,但一定是很流行的做法,加熱濃縮後的可樂包裹 ...

40年前一幅畫5元沒人要,他買下九千張,如今隨便一幅就價值上億

40年前一幅畫5元沒人要,他買下九千張,如今隨便一幅就價值上億
這個世界上不管是古代還是現代有才華的人並不缺少,缺少的是有眼光的人,有太多有才之人因無人賞識被埋沒. 就拿非常有名的畫家梵高來講,生前根本沒有人欣賞他的畫作,甚至認為他畫的都是垃圾,沒想到梵高去世後他 ...

可收進廚房的烹飪香料(收藏起來再看)一

可收進廚房的烹飪香料(收藏起來再看)一
一.八角 八角 介紹:八角,又稱茴香.八角茴香.大料和大茴香.是八角茴香科八角屬的一種植物.其同名的乾燥果實是中國菜和東南亞地區烹飪的調味料之一.為生長在溼潤.溫暖半陰環境中的常綠喬木,高可至20米. ...

長在桑樹上的“黃金”,過去人們不識貨,如今千元一斤難買到

長在桑樹上的“黃金”,過去人們不識貨,如今千元一斤難買到
#三農知識分享家# 近些年來,隨著人們生活水平的提高和視野的開闊 ,農村的很多山貨成了城裡人搶手的貨物 ,在這種形勢下,農村的一些山貨隨之水漲船高 ,一些稀有又有價值的東西 ,被人發掘出來 ,成為了搶 ...

2021中秋家宴出爐,3-4口人家6道菜,好吃不浪費,待客還倍有面子

2021中秋家宴出爐,3-4口人家6道菜,好吃不浪費,待客還倍有面子
導語:2021中秋家宴出爐,3-4口人家6道菜,好吃不浪費,待客還倍有面子. 月圓了,又是中秋,年年歲歲月相似,歲歲年年人不同."海上生明月,天涯共此時",中秋是一家人團聚的日子, ...

進入末伏,遇見這菜別手軟,鐵含量豐富,簡單一做,嫩滑又解暑

進入末伏,遇見這菜別手軟,鐵含量豐富,簡單一做,嫩滑又解暑
俗話說"秋老虎,熱死人",秋老虎其實就是末伏,是夏季最後一個伏天,雖然此時已經立秋,但是氣溫依然很高,飲食上還是要以清淡,解暑為主要,另外加上一些防秋燥的食物,為進入秋季打好基礎. ...

​減肥期常吃的菜,低脂低卡,營養美味,大口吃肉真解饞

​減肥期常吃的菜,低脂低卡,營養美味,大口吃肉真解饞
減肥期常吃的菜,低脂低卡,營養美味,大口吃肉真解饞! 大家好!我是紫色浪漫,又到了分享美食的時間.最近比較忙,有一段時間沒有更新啦!不過再怎麼忙,減肥的事情不能忘,每天都會給自己做減脂餐,今天給大家分 ...

豬油渣到底是血管的“良藥”還是“殺手”?不妨聽聽醫生的答案

豬油渣到底是血管的“良藥”還是“殺手”?不妨聽聽醫生的答案
導語:一說起豬油渣,可能對於一些年輕的朋友們來說,並不是多麼令人熟悉的一種食物,但是在那個物質缺乏的年代,豬油渣可以說是非常珍貴的食物. 如果平時用豬油渣來做飯的話,那味道是相當的美味,而且非常的下飯 ...

中午一菜一湯,有葷有素,做法簡單,減肥的閨蜜直給我豎大拇哥

中午一菜一湯,有葷有素,做法簡單,減肥的閨蜜直給我豎大拇哥
中午一菜一湯,有葷有素,做法簡單,減肥的閨蜜直給我豎大拇哥 週末在家也要好好吃飯,中午做了一菜一湯,做法簡單,葷素搭配,吃了不易長肉,還減脂,減肥的閨蜜吃美了. 花菜營養含量豐富,其中豐富的膳食纖維, ...

午餐,給孩子準備了3菜1湯,曬到朋友圈,大家說:媽媽真用心

午餐,給孩子準備了3菜1湯,曬到朋友圈,大家說:媽媽真用心
家裡有孩子的父母想必每天都在為她吃啥而發愁,小孩子通常都有挑食的毛病,喜歡吃那個就猛吃,不喜歡的一筷子都不動.有些家長對此非常無奈,只能把孩子放進託管,一是可以省很多事,二是在老師的管教下,希望孩子可 ...

湖北最出名的16道菜,每一道都是湖北人的心頭愛,有你喜歡的嗎?

湖北最出名的16道菜,每一道都是湖北人的心頭愛,有你喜歡的嗎?
湖北最出名的16道菜,每一道都是湖北人的心頭愛,有你喜歡的嗎?大家好,我是水墨尚食,今天跟大家分享16道湖北名菜,看看有沒有你喜歡的? 國慶長假,大多數人都會選擇外出旅遊,既可以觀賞沿途風景和祖國的大 ...

天冷了,多給孩子做這菜吃,先炸後煲營養又解饞,上桌孩子搶著吃

天冷了,多給孩子做這菜吃,先炸後煲營養又解饞,上桌孩子搶著吃
小雨美食記原創圖片.文章,未經許可禁止搬運.抄襲,違者必究! 天冷了,多給孩子做這菜吃,先炸後煲營養又解饞,上桌孩子搶著吃! 受到颱風"圓規"的影響,許多地方都出現了颳大風.降大溫 ...

吃再多也不怕長肉,這道菜清爽不油膩,還能減肥

吃再多也不怕長肉,這道菜清爽不油膩,還能減肥
老人常說"貼秋膘",這是因為秋冬季節身體消耗的能量會更大就需要更多的營養補充,大魚大肉就開始上桌了.但是現在生活都變好了,家家都不缺,飲食過程中一定要保持綠色健康的膳食結構,下面我 ...

澳大利亞重金通緝一條鯉魚,懸賞500萬!這條鯉魚究竟做了什麼?

澳大利亞重金通緝一條鯉魚,懸賞500萬!這條鯉魚究竟做了什麼?
到底怎樣才能一夜暴富?除去違法犯罪,有人提議等待拆遷,也有人提議組團去迪拜發家致富,最不濟動手一下轉發抽獎,說不定你就是下一條錦鯉,下半輩子告別工作每天的任務就是吃喝玩樂. 說到錦鯉,中國人第一反應就 ...

生長在農村河邊的“香腸”,曾是農村娃的玩具,卻不知它價值很高

生長在農村河邊的“香腸”,曾是農村娃的玩具,卻不知它價值很高
其實很多農村長大的朋友都見過,它就是有著香腸草.臘腸草之稱的"香蒲". (池塘邊的野生香蒲) 生長在農村河邊的"香腸" 農村有很多長得十分特別的植物,香蒲便是其 ...

農村隨處可見的一種野生植物,人稱“蛤蟆藤”你們有見過嗎?

農村隨處可見的一種野生植物,人稱“蛤蟆藤”你們有見過嗎?
今天是十一國慶,去媽媽家裡玩,一回到家,看見老媽第上曬了好多這個野草,這個野草我們叫它為"蛤蟆藤",小時候經常看到這樣的野草,但不知道它還可以用來賣錢,原來它也是中草藥,藥用價值很 ...

這張紙分幣“不一般”,行里人都知道價值很高,遇到不要錯過

這張紙分幣“不一般”,行里人都知道價值很高,遇到不要錯過
紙分幣,估計很多人還是有印象的,特別是八零後們,大家小時候都是用過.玩過這種紙幣的,這是我國發行的面值最小的紙幣了,而且這種紙分幣總共有三個面值,分別是壹分.貳分和伍分,現在已經不再流通了,從21世紀 ...

山谷陰暗處長有1種“大葉蘚”,老人說是“迴心草”,為名貴藥材
不知道從什麼時候開始,身邊的花友圈突然興起了養中草藥的風潮,跟我們日常在生活當中常見到的那些花卉植物相比,中草藥之類的植物,有很多觀賞價值還是很高的,而且還有附加的藥用價值,所以相比普通的花卉植物來講 ...