Leetcode 第136場周賽 前三題)

2021-09-22 13:01:21 字數 3554 閱讀 8303

5055. 困於環中的機械人

在無限的平面上,機械人最初位於 (0,

0)

(0, 0)

(0,0

) 處,面朝北方。機械人可以接受下列三條指令之一:

" g"

"g""g

":直走 1

11 個單位

" l"

"l""l

":左轉 90

9090度"r

""r"

"r":右轉 90

9090

度機械人按順序執行指令 ins

truc

tion

sinstructions

instru

ctio

ns,並一直重複它們。

只有在平面中存在環使得機械人永遠無法離開時,返回 tru

etrue

true

。否則,返回 fal

se

false

false。

示例 111:

輸入:"ggllgg"

輸出:true

解釋:機械人從 (0,

0) 移動到 (0,

2),轉 180 度,然後回到 (0,

0)。重複這些指令,機械人將保持在以原點為中心,2 為半徑的環中進行移動。

示例 222:

輸入:"gg"

輸出:false

解釋:機械人無限向北移動。

示例 333:

輸入:"gl"

輸出:true

解釋:機械人按 (0,

0)->(0

,1)->(-

1,1)

->(-

1,0)

->(0

,0)->..

. 進行移動。

1.

1<= instructions.length <=

1002. instructions[i] 在 中

思路:如果機械人無法離開環,根據題意,機械人最多重複四次指令必然會回到原點。

class solution 

;int dy[4]

=;bool isrobotbounded

(string instructions)

//左轉

if(c ==

'l')

d =(d +1)

%4;//右轉

if(c ==

'r')

d =(d +3)

%4;}

}return x ==

0&& y ==0;

}};

5056. 不鄰接植花

有 n

nn 個花園,按從 1

11 到 n

nn 標記。在每個花園中,你打算種下四種花之一。

p at

hs[i

]=[x

,y

]paths[i] = [x, y]

paths[

i]=[

x,y]

描述了花園 x

xx 到花園 y

yy 的雙向路徑。

另外,沒有花園有 3

33 條以上的路徑可以進入或者離開。

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

以陣列形式返回選擇的方案作為答案 ans

we

ranswer

answer

,其中 ans

wer[

i]

answer[i]

answer

[i] 為在第 (i+

1)

(i+1)

(i+1

) 個花園中種植的花的種類。花的種類用 1,2

,3,4

1, 2, 3, 4

1,2,3,

4 表示。保證存在答案。

示例 111:

輸入:n =

3, paths =[[

1,2]

,[2,

3],[

3,1]

]輸出:[1,

2,3]

示例 222:

輸入:n =

4, paths =[[

1,2]

,[3,

4]]輸出:[1,

2,1,

2]

示例 333:

輸入:n =

4, paths =[[

1,2]

,[2,

3],[

3,4]

,[4,

1],[

1,3]

,[2,

4]]輸出:[1,

2,3,

4]

1.

1<= n <=

100002.0

<= paths.size <=

20000

3. 不存在花園有 4 條或者更多路徑可以進入或離開。

4. 保證存在答案。

思路:理解題意才是解這道題的關鍵。因為沒有花園有 3

33 條以上的路徑可以進入或者離開,所以我們可以儲存每個花園到其餘花園的路;當求某個花園應該種哪種花時,由於最多只有三條路徑、四種花色,可以迴圈判斷與其相連的花園的花色,排除掉這些花園的花色,選擇另外的一種作為當前花園的花色

class solution 

vector<

int>

ans(n)

;for

(int i =

0; i < n;

++i)

//排除已使用的花園花色,選擇另外的花色

for(

int j =

0; j <4;

++j)}}

return ans;}}

;

5057. 分隔陣列以得到最大和

給出整數陣列 a

aa,將該陣列分隔為長度最多為 k

kk 的幾個(連續)子陣列。分隔完成後,每個子陣列的中的值都會變為該子陣列中的最大值。

返回給定陣列完成分隔後的最大和。

示例:

輸入:a =[1

,15,7

,9,2

,5,10

], k =

3輸出:84

解釋:a 變為 [15,

15,15,

9,10,

10,10]

1.

1<= k <= a.length <=

5002.

0<= a[i]

<=10^

6

思路:典型的動態規劃題。

class solution 

}return dp[n];}

};

Leetcode 第136場周賽解題報告

週日的比賽的時候正在外面辦事,沒有參加。賽後看了下題目,幾道題除了表面要考的內容,還是有些能發散擴充套件的地方。做題目不是最終目的,通過做題發現知識盲區,去研究學習,才能不斷提高。理論和實際是有關係的,一些題目也都有現實意義。計算機的一些模擬操作,通過數學演算法,能夠大大減輕 量和演算法複雜度。第一...

Leetcode 第136場周賽解題報告

週日的比賽的時候正在外面辦事,沒有參加。賽後看了下題目,幾道題除了表面要考的內容,還是有些能發散擴充套件的地方。做題目不是最終目的,通過做題發現知識盲區,去研究學習,才能不斷提高。理論和實際是有關係的,一些題目也都有現實意義。計算機的一些模擬操作,通過數學演算法,能夠大大減輕 量和演算法複雜度。第一...

leetcode 第132場周賽

愛麗絲和鮑勃一起玩遊戲,他們輪流行動。愛麗絲先手開局。最初,黑板上有乙個數字n。在每個玩家的回合,玩家需要執行以下操作 如果玩家無法執行這些操作,就會輸掉遊戲。只有在愛麗絲在遊戲中取得勝利時才返回true,否則返回false。假設兩個玩家都以最佳狀態參與遊戲。示例 1 輸入 2輸出 true解釋 愛...