ARTS是什么?
Algorithm:每周至少做一个leetcode的算法题;
Review:阅读并点评至少一篇英文技术文章;
Tip/Techni:学习至少一个技术技巧;
Share:分享一篇有观点和思考的技术文章。
一、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的二维数组,一维数组代表的是对应的行或者列或box的序列,二维数组的第二个下标下标表示对应的数字是否出现,如果出现了,则打上标记。
行和列都还好,box的序列和i,j之间的关系,观察下可以得出如下:
k = i/3*3+j/3,这里的除法是整除,在python3中,/ 结果是浮点数,//才是整除,这点要注意。
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
解法二:思路基本是一样的,不过是用列表来存储每个点对应的3个位置,比如list[0][0] = 8,则对应的有三个点
(8,0),(0,8),(0,0,8),如果在同一行有8的化,则会(0,8),(8,2),(0,2,8),则会出现相同的点。valid sudoku,没有重合的点,否则会有,通过判断列表的长度和set的长度,就可以判断是否一个数独是否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
为什么你需要谷歌云数据工程师证书
Demonstrate your proficiency to design and build data processing systems and create machine learning models on Google Cloud Platform.
表明你有能力在谷歌云平台设计并搭建数据处理系统并创建机器学习模型,并且是专业的。
培训的课程
-
Cousera定制化谷歌云平台数据工程师课程
花费:49美元/月
时间:1-2个月,10个小时/周
有用程度:8/10
如果之前没有用过谷歌云,这个教程会非常有用,会有关于QwikLabs等平台的操作练习课程。以及怎么使用谷歌的大数据查询,云数据处理,数据流处理以及bigtable
-
Linux Academy 谷歌认证的专业数据工程师
花费:49美元/月
时间:1-4周,每周4个小时
有用程度:10/10
考完之后回顾课程,才发现这个课程是最有用的。另外推荐跟随课程的一些笔记。
-
谷歌云平台介绍
花费:免费
时间:1周,4-6小时
有用程度:4/10
快速上手谷歌云平台
谷歌云1分钟视频
花费:免费
时间:1-2小时
有用程度:5/10云专家数据工程师培训
花费:有证书-49美元,无证书则免费
时间:1-2周,6个小时每周
有用程度:没上,所以不清楚谷歌数据工程师备忘单 by Maverick Lin
花费:免费
时间:N/A
有用程度:N/A ,也是考试之后发现的
接下来就是多做练习,并且使用academy和google的模拟考试。
三、Tips
pip install stackprinter
#全局加上
import stackprinter
stackprinter.set_excepthook(style='color')
四、Share
AngelaTalk公众号的文章,忙也要有方向。
忙和迷茫:说说direction, priority及focus