ARTS #78

Algorithm

673. 最長遞增子序列的個數

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] // 重置計數
                } else if dp[j]+1 == dp[i] {
                    cnt[i] += cnt[j]
                }
            }
        }
        if dp[i] > maxLen {
            maxLen = dp[i]
            ans = cnt[i] // 重置計數
        } else if dp[i] == maxLen {
            ans += cnt[i]
        }
    }
    return
}

Review

gRPC Go Microservice
文章介紹了一個簡單的go gRPC的hello world項目搭建過程。

TIP

工作過程使用了go標準庫的rwMutex,能夠減少讀操作的鎖顆粒度。

  1. 讀鎖和讀鎖之間不互斥。
  2. 讀寫和寫鎖之間互斥。
  3. 寫鎖和寫鎖之間互斥。

Share

作為面試官如果在面試過程遇到求職者的項目經歷或者技術背景是自己不熟悉的方面,要怎么通過問答看出求職者的能力水平呢?
我個人的做法是做一個傾聽者,讓求職者詳細介紹自己的項目經歷,這個過程可以提出如下問題:

  1. 向我這個小白闡述一下這個項目/技術。這個問題能夠考察求職者對項目/技術的理解深度,如果你能用大白話向一個小白解釋清楚你的專業(yè)領域,那么就說明你一定程度看透了這個領域的本質。
  2. 這個項目的整體技術&業(yè)務架構,為什么這樣子設計? 這個問題考察求職者的整體設計能力和技術選型能力。
  3. 項目中你遇到的最難的問題或者你覺得最有技術難度的部分,詳細描述一下問題、難點在哪里、以及你最終怎么解決這個的。這部分能夠考察求職者的技術深度,遇到問題之后的定位&解決能力。
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容