撬动offer:基于一道算法题的分析
JAVA乐园
共 952字,需浏览 2分钟
· 2020-10-18
点击上方「蓝字」关注我们
0x01:算法题
给定无序数组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
0x02:分析
从题目分析我认为主要有两个考点:
排序
连续数字最长子串
但是具体要看面试官的阐述,比如如果面试官说可以使用系统自带的排序,那么就不要纠结到底使用冒泡排序,还是快速排序;直接使用Collections的sort方法即可。
从力扣上看下,有不少跟子串相关的算法题
0x03:参考实现
如下这个答案应该也算是一个暴力破解了,看看大家有没有更优的解法
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);
}
}
扫码二维码
获取更多精彩
Java乐园
评论
【第129期】程序员的新宠:三款终端工具,让你告别Xshell!
概述 WindTerm:跨平台的SSH利器 首先介绍的是WindTerm,这是一款使用C语言开发的跨平台SSH客户端。它不仅完全免费,而且没有商业使用的限制。WindTerm支持SSH v2、Telnet、Raw Tcp等协议,而且性能出色,甚至超过了FinalShell和Electerm。功能
前端微服务
0
上班的时候,有一群摸鱼搭子非常重要...
上班的时候,有一群摸鱼搭子非常重要!一到上班时间,他们就从四面八方涌进群里冒泡...从八卦聊到股市、从职场聊到乌X兰局势,偶尔还会复读、相亲、battle...然后,下午6点钟准时消失不见...所以你要不要加入我们一起摸鱼?我们有北京、上海、深圳、广州、杭州、武汉、成都、南京等8个城市的摸鱼群,还有
产品经理日记
0
周四002 瑞超:同样落寞的境遇——北雪平vs埃尔夫斯堡
上赛季最终排名联赛第9的北雪平本赛季伊始表现不佳,4轮战罢他们仅以1胜1平2负的战绩排在倒数第三,这支历史上曾夺得13次联赛冠军、6次杯赛冠军老牌劲旅,正如英格兰赛场上的一众百年俱乐部,在低谷中不断探索着出路。球队主教练安德烈亚斯·阿尔姆曾是AIK索尔纳及赫根队的主教练,他于今年年初刚刚拿起球队教鞭
产品与体验
0
日本影山优佳最新杂志照,展现充满透明感的美丽
今天的图文分享的是影山优佳的杂志写真。元日向坂46的影山优佳,登上了写真杂志《周刊FLASH》5/7和5/14合并号的封面。影山优佳是日本艺人、女演员、前偶像。身高155厘米。2001年5月8日出生于东京都。2023年7月从组合日向坂46毕业,之后作为演员活跃的影山优佳,在《周刊FLAS
python教程
0
盘点一个使用超级鹰识别验证码并自动登录的案例
点击上方“Python共享之家”,进行关注回复“资源”即可获赠Python学习资料今日鸡汤江上几人在,天涯孤棹还。大家好,我是皮皮。一、前言前几天在Python钻石交流群【静惜】问了一个Python实现识别验证码并自动登录的问题,提问截图如下:验证码的截图如下所示:二、实现过程这里大家激烈的探讨,【
IT共享之家
0
朋友,你也不想一个人孤孤单单的上班吧?
上班的时候,有一群摸鱼搭子非常重要!一到上班时间,他们就从四面八方涌进群里冒泡...从八卦聊到股市、从职场聊到乌X兰局势,偶尔还会复读、相亲、battle...然后,下午6点钟准时消失不见...所以你要不要加入我们一起摸鱼?我们有北京、上海、深圳、广州、杭州、武汉、成都、南京等8个城市的摸鱼群,还有
产品经理日记
0
美团社招一面,比预想的简单。
面试题大全:www.javacn.site面试这件事就很玄学,有时候你觉得他可能很难,但面完之后竟然出奇的顺利,问的问题你都会;有些你觉得这次面试应该很简单,但去了之后就被问懵了,所以面试这件事有很多一部分运气的成分。所以说,在没有 Offer 之前就是多准备、楞怂面,主打一个大力出奇迹。这不,逛牛
Java中文社群
0
Eiten 一个构建投资组合的好帮手
Eiten是Tradytics的一个开源工具包,它实现了各种统计和算法投资策略,如Eigen组合、最小方差组合、最大夏普比率组合和基于遗传算法的组合。Eiten允许你用自己的股票组合建立自己的投资组合。Eiten中自带的严格测试框架使你能够对你的投资组合更有自信。1.准备开始之前,你要确保Pytho
Python实用宝典
0