收集、管理和分享有用的代码片段,提高开发效率
动态规划解LCS问题
func lcs(s, t string) int {
m, n := len(s), len(t)
dp := make([][]int, m+1)
for i := 1; i <= m; i++ {
for j := 1; j <= n; j++ {
if s[i-1] == t[j-1] {
dp[i][j] = dp[i-1][j-1] + 1
} else {
dp[i][j] = max(dp[i-1][j], dp[i][j-1])
}
}
}
return dp[m][n]
}
0-1背包动态规划解法
func knapsack(weights, values []int, capacity int) int {
n := len(weights)
dp := make([][]int, n+1)
for i := 1; i <= n; i++ {
for w := 0; w <= capacity; w++ {
dp[i][w] = dp[i-1][w]
if w >= weights[i-1] {
drop := values[i-1] + dp[i-1][w-weights[i-1]]
if dp[i][w] < drop {
dp[i][w] = drop
}
}
}
}
return dp[n][capacity]
}
高效计算幂运算
func quickPow(base, exp int) int {
result := 1
for exp > 0 {
if exp&1 == 1 {
result = result * base
}
base = base * base
exp >>= 1
}
return result
}
高效计算幂运算
func quickPow(base, exp int) int {
result := 1
for exp > 0 {
if exp&1 == 1 {
result = result * base
}
base = base * base
exp >>= 1
}
return result
}
使用gzip压缩文件
func compressFile(src, dst string) error {
in, err := os.Open(src)
if err != nil {
return err
}
defer in.Close()
out, err := os.Create(dst)
if err != nil {
return err
}
defer out.Close()
gz := gzip.NewWriter(out)
defer gz.Close()
_, err = io.Copy(gz, in)
return err
}
解压gzip文件
func decompressFile(src, dst string) error {
in, err := os.Open(src)
if err != nil {
return err
}
defer in.Close()
gz, err := gzip.NewReader(in)
if err != nil {
return err
}
defer gz.Close()
out, err := os.Create(dst)
if err != nil {
return err
}
defer out.Close()
_, err = io.Copy(out, gz)
return err
}
高效管理您的代码片段,提高开发效率
通过关键字、语言或分类快速查找代码片段,支持模糊搜索和过滤功能
支持多种编程语言的语法高亮,使代码更加清晰易读
随时随地访问您的代码片段库,支持桌面和移动设备
浏览最受欢迎的代码分类