Algorithm
func findNumberOfLIS(nums []int) (ans int) {
maxLen := 0
n := len(nums)
dp := make([]int, n)
cnt := make([]int, n)
for i, x := range nums {
dp[i] = 1
cnt[i] = 1
for j, y := range nums[:i] {
if x > y {
if dp[j]+1 > dp[i] {
dp[i] = dp[j] + 1
cnt[i] = cnt[j] // 重置計數(shù)
} else if dp[j]+1 == dp[i] {
cnt[i] += cnt[j]
}
}
}
if dp[i] > maxLen {
maxLen = dp[i]
ans = cnt[i] // 重置計數(shù)
} else if dp[i] == maxLen {
ans += cnt[i]
}
}
return
}
Review
gRPC Go Microservice
文章介紹了一個簡單的go gRPC的hello world項目搭建過程。
TIP
工作過程使用了go標準庫的rwMutex监婶,能夠減少讀操作的鎖顆粒度聊训。
- 讀鎖和讀鎖之間不互斥。
- 讀寫和寫鎖之間互斥菜循。
- 寫鎖和寫鎖之間互斥利赋。
Share
作為面試官如果在面試過程遇到求職者的項目經(jīng)歷或者技術(shù)背景是自己不熟悉的方面涡上,要怎么通過問答看出求職者的能力水平呢?
我個人的做法是做一個傾聽者绍申,讓求職者詳細介紹自己的項目經(jīng)歷噩咪,這個過程可以提出如下問題:
- 向我這個小白闡述一下這個項目/技術(shù)。這個問題能夠考察求職者對項目/技術(shù)的理解深度极阅,如果你能用大白話向一個小白解釋清楚你的專業(yè)領(lǐng)域胃碾,那么就說明你一定程度看透了這個領(lǐng)域的本質(zhì)。
- 這個項目的整體技術(shù)&業(yè)務(wù)架構(gòu)筋搏,為什么這樣子設(shè)計仆百? 這個問題考察求職者的整體設(shè)計能力和技術(shù)選型能力。
- 項目中你遇到的最難的問題或者你覺得最有技術(shù)難度的部分奔脐,詳細描述一下問題俄周、難點在哪里、以及你最終怎么解決這個的帖族。這部分能夠考察求職者的技術(shù)深度栈源,遇到問題之后的定位&解決能力。