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
噓
02/11 22:34,
4月前
, 1F
02/11 22:34, 1F
推
02/11 22:35,
4月前
, 2F
02/11 22:35, 2F
→
02/11 22:36,
4月前
, 3F
02/11 22:36, 3F
→
02/11 22:36,
4月前
, 4F
02/11 22:36, 4F
→
02/11 22:37,
4月前
, 5F
02/11 22:37, 5F
推
02/11 22:38,
4月前
, 6F
02/11 22:38, 6F
推
02/11 22:40,
4月前
, 7F
02/11 22:40, 7F
→
02/11 22:41,
4月前
, 8F
02/11 22:41, 8F
推
02/11 22:42,
4月前
, 9F
02/11 22:42, 9F
→
02/11 22:43,
4月前
, 10F
02/11 22:43, 10F
→
02/11 22:43,
4月前
, 11F
02/11 22:43, 11F
推
02/11 22:45,
4月前
, 12F
02/11 22:45, 12F
→
02/11 22:46,
4月前
, 13F
02/11 22:46, 13F
推
02/11 22:47,
4月前
, 14F
02/11 22:47, 14F
→
02/11 22:47,
4月前
, 15F
02/11 22:47, 15F
→
02/11 22:47,
4月前
, 16F
02/11 22:47, 16F
推
02/11 22:57,
4月前
, 17F
02/11 22:57, 17F
→
02/11 23:05,
4月前
, 18F
02/11 23:05, 18F
→
02/11 23:18,
4月前
, 19F
02/11 23:18, 19F
討論串 (同標題文章)