面试中算法题目

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写一个程序,输入一个数组,输出所有不重复的组合方式。

ACM-ICPC 2018 徐州赛区网络预赛 A. Hard to prepare(dp)