0%

虾皮20250423笔试

单选10个30分,多选5个15分(多选不得分,少选得1分),编程题3个55分
编程是核心代码模式,但编译没有任何提示。

单选

  1. 写时复制Copy on write 特征
  2. 192.168.10.0/22 包含主机数
    1022
  3. 折半查找 1 2 5 7 12 17 31 45 63 76 79 95 找45 分别要找哪些数字
    17 63 31 45
  4. 设计模式
    生产者消费者使用观察者模式
    拦截器使用的是
  5. RPC
  6. 状态码
    404请求的资源不存在,403服务器拒绝请求
  7. Linux inode中不记录
    不记录文件内容,只包含指向文件数据块的指针
  8. x86,RISC-V,ARM架构
    x86使用CISC
    RISC-V,ARM架构使用RISC
  9. sql语句要查询处于登录状态的用户,按userID 和 日期排序,数据库可能触发filesort,怎么建索引来避免
    Filesort是MySQL中一种排序操作机制,当查询无法利用索引完成排序时,MySQL会将结果集放入内存或临时文件中进行排序。
  10. 微服务架构,观测性不包括什么
    一般包含 日志、指标、分布式追踪,不包含配置管理

多选

  1. linux命令中查找文件是否包含字符串特定字符的命令
    grep awk
  2. TCP大量储量TIME_WAIT状态怎么解决
    最有效的方法
    允许端口TIME_WAIT状态下被重用
    负载均衡器减少单个服务器压力
  3. 单元测试、基准测试和模糊测试
    单元测试覆盖所有路径,尽量独立,不依赖外部
    基准测试模拟生产环境中运行
    模糊测试结果应包含在详细日志
  4. 垃圾回收机制
    不能完全解决OOM问题
    自动管理内存
    回收期间不完全暂停应用执行
    分代回收基于大多数对象在短时间变得不可达
  5. 哈希表
    loadfactor不是越小越好,一般选0.75
    查找、删除最坏到达O(n)
    哈希函数选择应该使键值均匀分布,减少冲突

编程题

  1. 数组划分成4个等和子集(数组长度小于15)(25)91%
    回溯加剪枝,找到力扣上leetcode473、698题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// [473. 火柴拼正方形](https://leetcode.cn/problems/matchsticks-to-square/)
class Solution {
public boolean makesquare(int[] matchsticks) {
int n = matchsticks.length;
int sum = 0;
for(int i = 0; i < n; i ++ ) {
sum += matchsticks[i];
}
int k = 4;
if(sum % k != 0) return false;
int target = sum / k;
Arrays.sort(matchsticks);
int[] cur = new int[k];
return dfs(matchsticks, n, target, k, cur);
}

boolean dfs(int[] matchsticks, int i, int target, int k, int[] cur) {
if(i == 0) {
return true;
}
for(int j = 0; j < k; j ++ ) {
if(j != 0 && cur[j] == cur[j - 1]) {
continue;
}
cur[j] += matchsticks[i - 1];
if(cur[j] <= target && dfs(matchsticks, i - 1, target, k, cur) == true) {
return true;
}
cur[j] -= matchsticks[i - 1];
}
return false;
}
}
  1. 排序(15)100%
  2. 树的层序遍历(15)100%