当前位置: 首页 > 面试经验 >

阿里大淘宝商业化中心暑期实习Java一面(1.5h)

优质
小牛编辑
88浏览
2023-05-09

阿里大淘宝商业化中心暑期实习Java一面(1.5h)

  1. 自我介绍
  2. 项目
  3. 后端为什么采用token机制进行幂等性校验而不用订单号?
  4. 为什么用redis来存储token?
  5. redis单机实现会有问题吗?(无法高可用)
  6. redis集群(主从、分片)
  7. 采用什么协议实现?
  8. 主从架构下当我数据很多的时候怎么办?
  9. 缓存雪崩、缓存穿透、缓存击穿
  10. 如果一个key刚才数据库里没有现在有了,布隆过滤器怎么处理?
  11. 布隆过滤器的优势劣势
  12. 布隆过滤器如何删数据
  13. redis数据结构
  14. zset底层
  15. redis为什么使用跳表来实现zset?
  16. MySQL隔离级别,解决了什么问题,默认隔离级别
  17. 可重复读的情况下能实现串行化吗?(解决幻读)
  18. MySQL在可重复读的情况下一定能防止幻读吗(引擎)
  19. innodb和myisam的区别
  20. 聚簇索引与非聚簇索引的区别
  21. innodb为什么采用聚簇索引?
  22. 二级索引
  23. MySQL索引为什么使用B+树而不用调表?
  24. 简单做个题:
给定一个未排序的整数数组`nums`,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。

示例

输入:`nums = [100,4,200,1,3,2]`
输出:`4`
解释:最长数字连续序列是 `[1,2,3,4]`。它的长度为 `4`。

输入:`nums = [0,3,7,2,5,8,4,6,0,1]`
输出:`9`

实现思路:

首先将数组中的所有数存入哈希表中,并标记为未访问过。依次遍历每个数,如果它之前没有被访问过,那么就向左、向右依次扩展,直到找到不连续的数为止。记录下连续数字序列的长度,并更新哈希表中访问过的数的标记。最后返回最长连续序列的长度即可。

代码实现:

class Solution {
    public int longestConsecutive(int[] nums) {
        Set<Integer> num_set = new HashSet<Integer>();
        for (int num : nums) {
            num_set.add(num);
        }
        int max_len = 0;
        for (int num : num_set) {
            if (!num_set.contains(num - 1)) {
                int cur_num = num;
                int cur_len = 1;
                while (num_set.contains(cur_num + 1)) {
                    cur_num += 1;
                    cur_len += 1;
                }
                max_len = Math.max(max_len, cur_len);
            }
        }
        return max_len;
    }
}

好长时间不面试了,转部门的转了快一个月突然约面试了,有点措手不及,答得不是很好,面试八股还是得常复习啊,两三周不碰就生疏了。也算是敲响了一个警钟吧。

#我的实习求职记录##我的求职思考##2024暑期实习##实习##如何判断面试是否凉了#
 类似资料: