ARTS是什么铡俐?
Algorithm:每周至少做一個leetcode的算法題捞高;
Review:閱讀并點評至少一篇英文技術(shù)文章谣辞;
Tip/Techni:學(xué)習(xí)至少一個技術(shù)技巧宋距;
Share:分享一篇有觀點和思考的技術(shù)文章。
一埃元、Algorithm
valid-sudoku(Medium)
Question:
Determine if a 9x9 Sudoku board is valid. Only the filled cells need to be validated according to the following rules:
Each row must contain the digits 1-9 without repetition.
Each column must contain the digits 1-9 without repetition.
Each of the 9 3x3 sub-boxes of the grid must contain the digits 1-9 without repetition.
Solution:
解法一:維護三個9*9的二維數(shù)組涝涤,一維數(shù)組代表的是對應(yīng)的行或者列或box的序列,二維數(shù)組的第二個下標下標表示對應(yīng)的數(shù)字是否出現(xiàn)岛杀,如果出現(xiàn)了阔拳,則打上標記。
行和列都還好类嗤,box的序列和i,j之間的關(guān)系糊肠,觀察下可以得出如下:
k = i/3*3+j/3,這里的除法是整除遗锣,在python3中货裹,/ 結(jié)果是浮點數(shù),//才是整除精偿,這點要注意弧圆。
class Solution:
def isValidSudoku(self, board: List[List[str]]) -> bool:
row = [[False for i in range(9)] for j in range(9)]
col = [[False for i in range(9)] for j in range(9)]
block = [[False for i in range(9)] for j in range(9)]
for i in range(9):
for j in range(9):
if board[i][j] != '.':
num = int(board[i][j]) - 1
k = i//3*3+j//3
if row[i][num] or col[j][num] or block[k][num]:
return False
row[i][num] = col[j][num] = block[k][num] = True
return True
解法二:思路基本是一樣的,不過是用列表來存儲每個點對應(yīng)的3個位置笔咽,比如list[0][0] = 8搔预,則對應(yīng)的有三個點
(8,0),(0,8),(0,0,8),如果在同一行有8的化叶组,則會(0,8),(8,2),(0,2,8)拯田,則會出現(xiàn)相同的點。valid sudoku甩十,沒有重合的點船庇,否則會有,通過判斷列表的長度和set的長度枣氧,就可以判斷是否一個數(shù)獨是否valid溢十。
class Solution:
def isValidSudoku(self, board: List[List[str]]) -> bool:
seen = []
for i, row in enumerate(board):
for j, c in enumerate(row):
if c != '.':
seen += [(c,j),(i,c),(i//3,j//3,c)]
return len(seen) == len(set(seen))
二、Review
passing-the-google-cloud-professional-data-engineer-certification
為什么你需要谷歌云數(shù)據(jù)工程師證書
Demonstrate your proficiency to design and build data processing systems and create machine learning models on Google Cloud Platform.
表明你有能力在谷歌云平臺設(shè)計并搭建數(shù)據(jù)處理系統(tǒng)并創(chuàng)建機器學(xué)習(xí)模型达吞,并且是專業(yè)的张弛。
培訓(xùn)的課程
-
Cousera定制化谷歌云平臺數(shù)據(jù)工程師課程
花費:49美元/月
時間:1-2個月,10個小時/周
有用程度:8/10
如果之前沒有用過谷歌云酪劫,這個教程會非常有用吞鸭,會有關(guān)于QwikLabs等平臺的操作練習(xí)課程。以及怎么使用谷歌的大數(shù)據(jù)查詢覆糟,云數(shù)據(jù)處理刻剥,數(shù)據(jù)流處理以及bigtable
-
Linux Academy 谷歌認證的專業(yè)數(shù)據(jù)工程師
花費:49美元/月
時間:1-4周,每周4個小時
有用程度:10/10
考完之后回顧課程滩字,才發(fā)現(xiàn)這個課程是最有用的造虏。另外推薦跟隨課程的一些筆記御吞。
-
谷歌云平臺介紹
花費:免費
時間:1周,4-6小時
有用程度:4/10
快速上手谷歌云平臺
谷歌云1分鐘視頻
花費:免費
時間:1-2小時
有用程度:5/10云專家數(shù)據(jù)工程師培訓(xùn)
花費:有證書-49美元漓藕,無證書則免費
時間:1-2周陶珠,6個小時每周
有用程度:沒上,所以不清楚谷歌數(shù)據(jù)工程師備忘單 by Maverick Lin
花費:免費
時間:N/A
有用程度:N/A 享钞,也是考試之后發(fā)現(xiàn)的
接下來就是多做練習(xí)揍诽,并且使用academy和google的模擬考試。
三栗竖、Tips
pip install stackprinter
#全局加上
import stackprinter
stackprinter.set_excepthook(style='color')
四暑脆、Share
AngelaTalk公眾號的文章,忙也要有方向狐肢。
忙和迷茫:說說direction添吗, priority及focus