面试中算法题目
2021-11-20
1分钟阅读时长
云账户
/**
给定一个包括 '(',')','{','}','[',']' 和'*'干扰字符的字符串,判断字符串是否有效。
例:
{**[*()*(**)**]**} 输出true
{**[**)**(**]**} 输出false
*/
快手
260. 只出现一次的数字 III
腾讯
168. Excel表列名称
72. 编辑距离
字节
package main
import "fmt"
func calc(x, y int) int {
fmt.Println(x, y, x+y)
return x + y
}
func main() {
a := 1
b := 2
defer calc(a, calc(a, b))
a = 0
defer calc(a, calc(a, b))
}
200. 岛屿数量
128. 最长连续序列
某部门面试题
//a_0 = [1]
//a_1 = [a_0, 2, a_0] = [1,2,1]
//a_2 = [a_1, 3, a_1] = [1,2,1,3,1,2,1]
//a_n = [a_{n-1}, n+1, a_{n-1}]
//
//a_n.len()
//
//a_n[k]
// 1. 求a_n的长度 2^(n + 1) - 1
// 2. 给n和k返回第n个排列中的第k个数字
func GetNK(n, k int) int {
c := math.Pow(2, float64(n+1)) - 1
mid := int(c) >> 1
if k > mid {
return GetNK(n-1, k-mid-1)
} else if k < mid {
return GetNK(n-1, k)
} else {
return n + 1
}
}
蓝湖
n 个数有序数组合并
探探
139. 单词拆分
剑指 Offer II 086. 分割回文子字符串
131. 分割回文串
知乎
1.给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 要求:时间复杂度为 O(n) nums = [0,3,7,2,5,8,4,6,0,1]
// 使得 run 中的 fn 只执行一次并 run 在 5 秒内返回, 且 err != nil 时能重试 3 次
func run(fn func() (interface{}, error)) interface{} {
// ...
res, err := fn()
// ...
}
其他
用go写一个程序,输入一个数组,输出所有不重复的组合方式。