分享头条面试题,是不是又凉了呢

算法题
给定无序数组arr , 返回其中最长的连续序列的长度(要求值连续 , 位置可以不连续,例如 1,2,3,4为连续的自然数)
示例1
输入 {100,4,200,1,3,2}
输出 4
示例2 输入 {200,201,202,100,4,200,1,3,2,204,203}
输出 5
import java.util.Scanner;import java.util.*;import java.lang.Integer;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String lineStr = scanner.nextLine();String[] elements =lineStr.split(" ");List list = new ArrayList();for(int i=0; itargetLen){ //面试官提示后加的判断targetLen = currentMaxLen;}startNum = list.get(k);}}System.out.println(targetLen);}}1、OOM线上处理
2、加密方案、电子签章的项目情况
3、分布式锁的原理 , zookeeper、redis分布式锁
4、redis底层数据结构
5、spring AOP原理
6、消息队列的使用情况
7、大数据处理的情况
8、HashMap的底层原理
9、换工作的原因
10、MQ消息丢失问题处理
11、蓝牙的通信协议
12、项目微服务的拆分的情况 , 及原理
综合:现场打的算法 题还是有误 , 面试官提示加了一个判断条件后 , 还是有误 。 修改后如下
【分享头条面试题,是不是又凉了呢】package test;import java.util.Scanner;import java.util.*;import java.lang.Integer;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String lineStr = scanner.nextLine();String[] elements = lineStr.split(" ");List list = new ArrayList();for (int i = 0; i < elements.length; i++) {Integer val = Integer.parseInt(elements[i]);if(!list.contains(val)){list.add(val);}}Collections.sort(list);System.out.println(list);int targetLen = 0;int startNum = list.get(0);int currentMaxLen = 1;for (int k = 1; k < list.size(); k++) {int e = list.get(k);startNum = startNum + 1;if ( e == startNum) {currentMaxLen = currentMaxLen + 1;} else {if (currentMaxLen > targetLen) {targetLen = currentMaxLen;}startNum = list.get(k);currentMaxLen = 1;System.out.println(startNum);}if(k == list.size()-1){if (currentMaxLen > targetLen) {targetLen = currentMaxLen;}}}System.out.println(targetLen);}}


    推荐阅读