一家游戏公司,编程题一共四道,时间2h。
第一题:
奇偶数排序。给定一个数组,相邻元素之和必须是奇数,需要返回字典序最小的重排序列,非力扣原题,但和这两道挺像的,像是这两个题目的缝合。
- 2149. Rearrange Array Elements by Sign(正负交替,思路高度相似)
- 905. Sort Array By Parity(奇偶分离基础题)
第二题:
括号的有效匹配,用栈直接秒了。需要猜题意,文案改的还是蛮有意思的,但一眼就能看出来。
第三题:
给定一个数组和一个未知数m,数组之和是m的倍数,这样的数组称优质数组,现在提供了:任意一个元素+1 或 删去一个元素 这两种操作,至少几次操作可以让一个数组变成优质数组。
基础解法是O(N2)会超时,使用动态规划DP是O(NxM),利用模的特性,当时没想出来。
第四题:
岛屿数量,典型的连通块计数问题,只不过不是上下左右四个方向,是八个方向,斜对角也都算上了,用DFS和BFS做。
笔试题a了三道,第三题没做出来,动态规划的题,没什么思路,没模拟出来。