※ 本文轉寄自 ptt.cc, 文章原始頁面
Re: [閒聊] 每日LeetCode
※ 引述 《JIWP (神楽めあ的錢包)》 之銘言:
:
: 1463 Cherry Pickup II
:
: 給一個2維矩陣grid,grid[i][j]代表這個格子的櫻桃數量
:
: 有兩個機器人會收集格子上的櫻桃
:
: 當兩個機器人走到同一格的時候,只有一個機器人可以拿grid[i][j]個櫻桃,另一個拿0
個
:
: 機器人一個是從左上角grid[0][0],另一個是從右上角grid[0][cols-1]
:
: 每次可以往左下、正下、右下走
:
: 請問機器人最多可以收集幾個櫻桃
這題一開始蠻難想的
偷偷看了一下提示之後
哇幹 對欸 可以三維
姆咪
思路:
有圖應該就很好懂ㄌ
https://i.imgur.com/nstwFsh.jpg
就跟下墜一樣 要把每一層的動作分開來討論
然後
要先知道某一層地方每一種走法的sum
所以會用paper來記錄他們
接下來就可以dp了
每一層都用sum來記錄走過的總和
然後兩個機器人都可以左右一格
所以sum在更新的時候要看自己的九宮格最大的
然後最後再看最後一層最大的就可以了
我beat 99.??% 媽的好爽
class Solution {
public:
int cherryPickup(vector<vector<int>>& grid)
{
int layer = grid.size();
int n = grid[0].size();
int paper[layer][n][n];
int sum[layer][n][n];
for(int l = 0 ; l < layer ; l ++)
{
for(int i = 0 ; i < n ; i ++)
{
for(int j = 0 ; j < n ; j ++)
{
if(i != j)
{
paper[l][i][j] = grid[l][i] + grid[l][j];
}
else if(i == j)
{
paper[l][i][j] = grid[l][i];
}
sum[l][i][j] = -1;
}
}
}
sum[0][n-1][0] = paper[0][n-1][0];
for(int l = 1 ; l < layer ; l ++)
{
for(int i = 0 ; i < n ; i ++)
{
for(int j = 0 ; j < n ; j ++)
{
int lastmax = -1;
if((i-1>=0)&&(j-1>=0))
{
lastmax = max(lastmax , sum[l-1][i-1][j-1]);
}
if((i-1>=0))
{
lastmax = max(lastmax , sum[l-1][i-1][j]);
}
if((i-1>=0)&&(j+1<n))
{
lastmax = max(lastmax , sum[l-1][i-1][j+1]);
}
if((j-1>=0))
{
lastmax = max(lastmax , sum[l-1][i][j-1]);
}
lastmax = max(lastmax , sum[l-1][i][j]);
if(j+1<n)
{
lastmax = max(lastmax , sum[l-1][i][j+1]);
}
if((i+1<n)&&(j-1>=0))
{
lastmax = max(lastmax , sum[l-1][i+1][j-1]);
}
if((i+1<n))
{
lastmax = max(lastmax , sum[l-1][i+1][j]);
}
if((i+1<n)&&(j+1<n))
{
lastmax = max(lastmax , sum[l-1][i+1][j+1]);
}
if(lastmax!=-1)
{
sum[l][i][j] = lastmax + paper[l][i][j];
}
}
}
}
int ans = 0;
for(int i = 0 ; i < n ; i ++)
{
for(int j = 0 ; j < n ; j ++)
{
ans = max(sum[layer-1][i][j] , ans);
}
}
return ans;
}
};
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.162.28.91 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1707661899.A.FD4.html
Re: 回文串
00
[閒聊] 每日Leetcode
Marginalman03/29 10:59
13
[閒聊] 每日LeetCode
Marginalman09/14 23:02
13
Re: [閒聊] 每日LeetCode
Marginalman09/15 12:15
22
Re: [閒聊] 每日LeetCode
Marginalman09/15 12:57
03
Re: [閒聊] 每日LeetCode
Marginalman09/21 15:41
35
Re: [閒聊] 每日LeetCode
Marginalman09/21 15:53
45
Re: [閒聊] 每日LeetCode
Marginalman09/22 10:40
16
Re: [閒聊] 每日LeetCode
Marginalman09/22 11:38
12
Re: [閒聊] 每日LeetCode
Marginalman09/22 16:12
27
Re: [閒聊] 每日LeetCode
Marginalman09/24 12:54
05
Re: [閒聊] 每日LeetCode
Marginalman09/25 15:51
24
Re: [閒聊] 每日LeetCode
Marginalman09/26 19:55
03
Re: [閒聊] 每日LeetCode
Marginalman09/27 23:40
25
Re: [閒聊] 每日LeetCode
Marginalman09/27 23:48
22
Re: [閒聊] 每日LeetCode
Marginalman09/28 10:06
35
Re: [閒聊] 每日LeetCode
Marginalman09/28 19:00
45
Re: [閒聊] 每日LeetCode
Marginalman09/29 10:22
36
Re: [閒聊] 每日LeetCode
Marginalman09/29 10:45
04
Re: [閒聊] 每日LeetCode
Marginalman09/29 23:33
33
Re: [閒聊] 每日LeetCode
Marginalman10/01 15:21
23
Re: [閒聊] 每日LeetCode
Marginalman10/01 23:23
38
Re: [閒聊] 每日LeetCode
Marginalman10/02 00:38
22
Re: [閒聊] 每日LeetCode
Marginalman10/02 09:00
45
Re: [閒聊] 每日LeetCode
Marginalman10/02 17:01
57
Re: [閒聊] 每日LeetCode
Marginalman10/03 09:12
44
Re: [閒聊] 每日LeetCode
Marginalman10/03 09:37
00
Re: [閒聊] 每日LeetCode
Marginalman10/03 11:25
56
Re: [閒聊] 每日LeetCode
Marginalman10/03 11:26
33
Re: [閒聊] 每日LeetCode
Marginalman10/04 09:52
55
Re: [閒聊] 每日LeetCode
Marginalman10/05 09:25
45
Re: [閒聊] 每日LeetCode
Marginalman10/05 09:40
46
Re: [閒聊] 每日LeetCode
Marginalman10/06 10:18
08
Re: [閒聊] 每日LeetCode
Marginalman10/06 10:27
13
Re: [閒聊] 每日LeetCode
Marginalman10/06 10:53
03
Re: [閒聊] 每日LeetCode
Marginalman10/06 15:02
25
Re: [閒聊] 每日LeetCode
Marginalman10/07 12:06
14
Re: [閒聊] 每日LeetCode
Marginalman10/07 19:36
33
Re: [閒聊] 每日LeetCode
Marginalman10/08 12:37
04
Re: [閒聊] 每日LeetCode
Marginalman10/08 13:02
24
Re: [閒聊] 每日LeetCode
Marginalman10/08 14:13
11
Re: [閒聊] 每日LeetCode
Marginalman10/08 16:09
22
Re: [閒聊] 每日LeetCode
Marginalman10/09 14:11
12
Re: [閒聊] 每日LeetCode
Marginalman10/10 14:38
22
Re: [閒聊] 每日LeetCode
Marginalman10/11 11:21
23
Re: [閒聊] 每日LeetCode
Marginalman10/12 10:06
610
Re: [閒聊] 每日LeetCode
Marginalman10/13 09:12
46
Re: [閒聊] 每日LeetCode
Marginalman10/13 12:17
67
Re: [閒聊] 每日LeetCode
Marginalman10/14 16:24
33
Re: [閒聊] 每日LeetCode
Marginalman10/15 18:59
47
Re: [閒聊] 每日LeetCode
Marginalman10/16 16:24
22
Re: [閒聊] 每日LeetCode
Marginalman10/17 09:42
23
Re: [閒聊] 每日LeetCode
Marginalman10/18 15:24
12
Re: [閒聊] 每日LeetCode
Marginalman10/18 16:37
23
Re: [閒聊] 每日LeetCode
Marginalman10/18 16:50
01
Re: [閒聊] 每日LeetCode
Marginalman10/19 09:45
13
Re: [閒聊] 每日LeetCode
Marginalman10/19 11:07
34
Re: [閒聊] 每日LeetCode
Marginalman10/20 09:21
66
Re: [閒聊] 每日LeetCode
Marginalman10/21 02:46
12
Re: [閒聊] 每日LeetCode
Marginalman10/21 09:12
34
Re: [閒聊] 每日LeetCode
Marginalman10/22 15:36
19 則留言
oin1104 作者的近期文章
Re: [閒聊] 每日leetcode
題目: 給你一串氣球陣列 用垂直x軸的箭射破他們 擦到邊就可以了 問你最少要幾隻箭矢 直接舉例說明比較快= = [[1,3][3,7][10,11][10,12]] 這裡的氣球需要兩隻箭 射過3跟11 就可以射破全部氣球了 解法: 反正都要
晚上有人要玩among us 嗎
@小母雞 @小牡丹 @阿消 @stillfat @mer5566 @貓夢 @大白菜 @噁蘿 @七探 @神奇圈 @e尊 @阿康 @狼師 等等來玩阿 這遊戲很好玩喔 而且免費 晚點阿消應該會開直播 你們可以看那邊的房號 不要ghost就好 手機
全部給我進來玩阿
https://youtube.com/live/yEbWNfA2igU?feature=share 一起來玩 快點 很好玩 有雨女喔 還有阿康姐姐 還有阿康同路人
噓
推
→
→
→
推
推
→
推
→
→
推
→
推
→
→
推
→
→