高階程式設計技術 課後作業十四(第9週第2次)

2021-08-19 11:53:47 字數 880 閱讀 2114

題目大意:

給定乙個用非負數填充的m * n維方格,每個數字表示從當前方格移動到下一方格的距離,找到一條從左上角到右下角的最短路徑,使其路徑和最短。每次移動只能向右或向下。

解題思路:

因為只能向右或向下移動,所以題目簡單很多,步驟如下:

(1)對第一行方格,每個數字自加它左邊方格的數字,因為第一行只能向右移動;

(2)對第一列方格,每個數字自加它下邊方格的數字,因為第一列只能向下移動;

(3)對其它方格,每個數字自加  它左邊方格的數字 和 它下邊方格的數字  的最小值;

(4)返回右下角方格的數字。

解題**:

class solution(object):

def minpathsum(self, grid):

for i in range(1,len(grid)):

grid[i][0] += grid[i-1][0]

for j in range(1,len(grid[0])):

grid[0][j] += grid[0][j-1]

for i in range(1,len(grid)):

for j in range(1,len(grid[0])):

grid[i][j] += min(grid[i-1][j],grid[i][j-1])

return grid[len(grid)-1][len(grid[0])-1]

演算法效能:

高階程式設計技術 課後作業十四(第9週第1次)

題目大意 給定乙個列表,列表裡的數字都是不同的,求列表所有可能的子集 冪集 解題思路 外層遍歷nums,以num記值,內層遍歷result,以item記值,每次遍歷,result都會增加新元素 item num。解題 class solution object def subsets self,nu...

高階程式設計技術 sklearn課後作業

作業要求 1 create a classification dataset n samples 1000,n features 10 2 split the dataset using 10 fold cross validation 3 train the algorithms gaussian...

高階程式設計技術課後作業 第五章練習

5 2 更多的條件測試 print abc abc print aaa bbb print abc abc print abc lower abc print 1 2 and2 1 print 1 2 or2 1 list a b c d print a inlist print a not inl...