手撕演算法 字串

2021-10-20 22:49:32 字數 858 閱讀 4442

2 最長回文子串

1.1 暴力法

以第乙個為基準,取其字首,與其他字串依次比較,如果全部相同,就更新res。res指向公共字首的末尾。

var

longestcommonprefix

=function

(strs)}if

(flag) res = i

}return strs[0]

.slice(0

, res+1)

};

1.2 分治法
var

longestcommonprefix

=function

(strs)

;// 分治

vargetcommonprefix

=function

(strs, left, right)

;// 合併

varcomparetwo

=function

(left, right)

}return left.

slice(0

, len)

}

2.1 暴力法
var

longestpalindrome

=function

(s)}

}// 如果找不到 就返回最長第乙個

return max ===

''? s.

charat(0

):max};

varishuiwen

=function

(s) i++

j--}return

true

}

手撕演算法 adaboost

adaboost是典型的boosting演算法。boosting演算法的核心思想是 上乙個模型對單個樣本 的結果越差,下個模型越重視這個樣本 增大該樣本的權重,加大模型 錯的成本 提公升樹就是每個模型都是決策樹,提公升樹種效果比較好的是gbdt和xgboost,入門是adaboost。adaboos...

手撕演算法 PCA

pca,principle component analysis。lda,linear discriminant analysis 首先說一下pca和lda的區別,二者都是降維的方法,pca的主要思想是降維後各個樣本點的方差之和最大,也就是各個樣本點要盡量的區分開。而lda的思想是降維後同類的樣本要...

手撕LRU演算法

lru是least recently used的縮寫,即最近最少使用,是一種常用的頁面置換演算法,選擇最久未使用的頁面予以淘汰。lru是一種快取淘汰策略,它認為最近使用的資料就是有用的,最久沒使用的資料就是沒用的,所以在當容量滿了之後,會先淘汰掉最久沒使用的資料,騰出空間來放新資料。leetcode...