我遇到了以下問(wèn)題并試圖解決:grid在代表櫻桃田的N x N 中,每個(gè)單元格都是三個(gè)可能的整數(shù)之一。0表示該單元格為空,可以通過(guò);1表示該單元格內(nèi)有一顆櫻桃,您可以拾取并穿過(guò)它;-1表示該單元格中有一根刺擋住了你的路。您的任務(wù)是按照以下規(guī)則收集盡可能多的櫻桃:從位置 (0, 0) 開(kāi)始,通過(guò)向右或向下移動(dòng)穿過(guò)有效路徑單元格(值 > 0 或 1 的單元格)到達(dá) (N-1, N-1);到達(dá)(N-1, N-1)后,通過(guò)向左或向上移動(dòng)經(jīng)過(guò)有效路徑單元格返回到(0, 0);當(dāng)經(jīng)過(guò)一個(gè)包含櫻桃的路徑單元格時(shí),你拿起它,該單元格變成一個(gè)空單元格(0);如果 (0, 0) 和 (N-1, N-1) 之間沒(méi)有有效路徑,則無(wú)法收集到櫻桃。Example 1:Input: grid =[[0, 1, -1], [1, 0, -1], [1, 1, 1]]Output: 5Explanation: The player started at (0, 0) and went down, down, right right to reach (2, 2).4 cherries were picked up during this single trip, and the matrix becomes [[0,1,-1],[0,0,-1],[0,0,0]].Then, the player went left, up, up, left to return home, picking up one more cherry.The total number of cherries picked up is 5, and this is the maximum possible.筆記:grid是一個(gè)二維N數(shù)組N,其中1 <= N <= 50.每個(gè)grid[i][j]都是集合中的一個(gè)整數(shù){-1, 0, 1}。保證grid[0][0]和grid[N-1][N-1]不為-1。所以我需要編寫一個(gè)函數(shù)cherryPickup,它接受一個(gè)網(wǎng)格并返回最大分?jǐn)?shù)。我的第一個(gè)次優(yōu)嘗試(用 Go 編寫)如下,據(jù)說(shuō)它會(huì)嘗試遍歷每條可能的路徑,在往返路徑完成后將分?jǐn)?shù)存儲(chǔ)在切片中,然后返回切片中存在的最大分?jǐn)?shù):func cherryPickup(grid [][]int) int { values := []int{} pVals := &values finalPoints := 0 // Begin top-down path traverseAndCollectTopDown(grid, 0, 0, 0, pVals) // Find max value in slice for i, pathPoints := range values { if i == 0 || pathPoints > finalPoints { finalPoints = pathPoints } } return finalPoints}func isTraversable(grid [][]int, x, y int) bool { return (grid[x][y] != -1)}func isOnBounds(grid [][]int, x, y int) bool { return (x < len(grid) && y < len(grid[0]) && x >= 0 && y >= 0)}目前它通過(guò)了一系列測(cè)試,但這個(gè)失敗了,我不知道為什么。輸入:[[1,1,1,1,0,0,0],[0,0,0,1,0,0,0],[0,0,0,1,0,0,1],[1,0,0,1,0,0,0],[0,0,0,1,0,0,0],[0,0,0,1,0,0,0],[0,0,0,1,1,1,1]]輸出:10預(yù)計(jì):15我知道這個(gè)網(wǎng)格必須得分 15 分,但是,為什么我的代碼無(wú)法走上獲勝之路,只得分 10 分?另外,您是否推薦任何終端實(shí)用程序、程序或策略來(lái)幫助更好地可視化每次運(yùn)行時(shí)發(fā)生的情況?
查看完整描述