用友Java全栈笔试面经
- 轮次
- 笔试
- 结果
- 部分通过
- 时间
- 2026-08
- 来源
- 牛客网
《面试题目》
- 给定两个数组,如何匹配元素并统计第二个数组中大于第一个数组元素的最小值数量?
- 如何统计连续
k个数字都大于t的窗口数量? - 如何解码类似
3[a2[bc]]的嵌套字符串? - 给定防御塔坐标和攻击半径,如何判断能否从
(0,0)到达终点(x,y)?
《参考解析》
- 数组匹配:先排序两个数组,使用双指针寻找能满足条件的最小元素;匹配成功后同时前进,时间复杂度为排序的
O(n log n)。 - 滑动窗口:维护窗口左右边界及窗口内满足条件的元素计数,右指针加入新元素、左指针移除过期元素,即可在线性时间内统计结果。
- 嵌套字符串解码:用数字栈和字符串栈保存嵌套层级,遇到数字累积倍数,遇到
[入栈,遇到]弹出上一层并重复当前字符串。 - 可达性判断:将防御塔覆盖区域视为障碍圆,检查起点和终点是否落入障碍,再通过几何连通性或网格化搜索判断是否存在避开所有圆形区域的路径。