算法題
給定無序數組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
<code>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(" "
); Listlist
=new
ArrayList();for
(int
i=0
; ilist.add(Integer.parseInt(elements[i])); } Collections.sort(list
);int
targetLen =0
;int
startNum =list
.get(0
);int
currentMaxLen=1
;for
(int
k=1
; k<list
.size(); k++){if
(list
.get(k) == startNum+1
){ currentMaxLen = currentMaxLen +1
; }else
{if
(currentMaxLen>targetLen){ targetLen = currentMaxLen; } startNum =list
.get(k); } } System.out.println(targetLen); } } /<code>
1、OOM線上處理
2、加密方案、電子簽章的項目情況
3、分佈式鎖的原理,zookeeper、redis分佈式鎖
4、redis底層數據結構
5、spring AOP原理
6、消息隊列的使用情況
7、大數據處理的情況
8、HashMap的底層原理
9、換工作的原因
10、MQ消息丟失問題處理
11、藍牙的通信協議
12、項目微服務的拆分的情況,及原理
綜合:現場打的算法 題還是有誤,面試官提示加了一個判斷條件後,還是有誤。修改後如下
<code>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(" "
); Vectorlist
=new
Vector();for
(int
i =0
; 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); } } /<code>