一个头发稀少、穿着格子衬衣的中年男子走了进来,把手里拿的MAC放在桌子上,对我说:“我会用电脑记录面试过程,你不要介意啊”。

我回答到:“没关系。”

面试官:“先来一点基础的算法题吧,用Java写一个方法,求100万内的质数。”

我心中暗想确实很基础,质数不就是除了1和自身外无法被其他数整除的数嘛,于是便写下:

public static List findPrime(){

List list = new ArrayList<>(100000);

for (int n = 2; n < 1000000; n++) {

boolean isPrime = true;

for (int i = 2; i < n; i++) {

if (n % i == 0) {

isPrime = false;

break;

}

}

if (isPrime) {

list.add(n);

}

}

return list;

}

欢迎关注微信公众号:万猫学社,每周一分享Java技术干货。

面试官皱了一下眉头,说:“计算整除的时候,需要从2一直计算到n-1嘛?”

经过这么一提醒,我突然想起来整除计算到平方根就可以了,于是马上修改了代码:

public static List findPrime(){

List list = new ArrayList<>(100000);

for (int n = 2; n < 1000000; n++) {

boolean isPrime = true;

int sqrt = (int) Math.sqrt(n);

for (int i = 2; i <= sqrt; i++) {

if (n % i == 0) {

isPrime = false;

break;

}

}

if (isPrime) {

list.add(n);

}

}

return list;

}

欢迎关注微信公众号:万猫学社,每周一分享Java技术干货。

面试官看了看,说:“写的很好,功能基本上都实现了。不过再想想,有什么可以优化的地方?”

我想了想,说:“好像没有什么可以优化的?”

我左思右想一番,说:“应该没有吧。”

面试官说:“确定没有了嘛?”

我肯定地回答:“确定没有了。”

面试官:“好吧,这个问题先到这。”

我有点不服气,抢着问到:“您说说,还有什么可以优化的地方?”

面试官微笑了一下,说:“还可以利用之前计算出质数做整除就可以了,性能至少可以提升一倍。”

面试官在我写的代码上改了几笔,就变成了:

public static List findPrime(){

List list = new ArrayList<>(100000);

for (int n = 2; n < 1000000; n++) {

boolean isPrime = true;

int sqrt = (int) Math.sqrt(n);

for (Integer i : list) {

if (n % i == 0) {

isPrime = false;

break;

}

if (i > sqrt) {

break;

}

}

if (isPrime) {

list.add(n);

}

}

return list;

}

欢迎关注微信公众号:万猫学社,每周一分享Java技术干货。

我茅塞顿开,这次面试真的是学到了。

本故事纯属虚构,如有雷同实属巧合。

欢迎关注微信公众号:万猫学社,每周一分享Java技术干货。

java 100万 100 最大 选出_面试真题:求100万内的质数相关推荐

  1. Java面试题库,2021Java大厂面试真题

    前言 Spring 也算有多年的历史了,已成为Java应用程序开发框架的事实标准.在如此悠久的历史背景下,有人可能会认为Spring放慢了脚步,躺在了自己的荣誉簿上,再也做不出什么新鲜的东西,或者是让 ...

  2. 会议室分配时间最长_面试真题 | 3个会议室,现在有6个会议,你会如何安排?vvvv...

    笔试名次靠前,如何稳赢不输?笔试名次靠后,如何逆袭翻盘?为助大家顺利面试成"公",小政将持续分享面试备考技巧以及历年面试真题,敬请关注哦! 提醒:面试是一场靠说的考试,拿到题后一定 ...

  3. 各大互联网公司面经分享:Java全栈知识+1500道大厂面试真题

    这篇文章给大家分享一下我遇到的一些质量较高的面试经历,具体经过就不多说了,就把面试题打出来供各位读者老哥参考如有不全的地方,各位海涵. 猿辅导 八皇后问题 求二叉树的最长距离(任意两个节点的路径 中最 ...

  4. 各大厂面经分享:Java全栈知识+1500道大厂面试真题

    这篇文章给大家分享一下我遇到的一些质量较高的面试经历,具体经过就不多说了,就把面试题打出来供各位读者老哥参考如有不全的地方,各位海涵. 猿辅导 八皇后问题 求二叉树的最长距离(任意两个节点的路径 中最 ...

  5. java教程传智播客,面试真题解析

    01 阿里中间件(四面,Java岗) 1.1 Java中间件一面 技术一面考察范围 重点问了Java线程锁:synchronized 和ReentrantLock相关的底层实现 线程池的底层实现以及常 ...

  6. Java 岗史上最全八股文面试真题汇总,堪称 2023年面试天花板

    很多 Java 工程师的技术不错,但是一面试就头疼,10 次面试 9 次都是被刷,过的那次还是去了家不知名的小公司. 问题就在于:面试有技巧,而你不会把自己的能力表达给面试官. 应届生:你该如何准备简 ...

  7. 【数据攻略】字节面试真题(含答案)+100道面试题库

    整理了一套字节的面试真题,还有100道PDF版的面试题库 一.SQL题 面试真题1: 抖音电商平台,现有一张订单表(order_info),有以下字段: order_id goods_id order ...

  8. 【刷题记录11】Java工程师丨字节面试真题(五)

    活动地址:CSDN21天学习挑战赛 JAVA面试练习题刷题记录 目录 一.雀魂启动 二.特征提取 三.毕业旅行问题 总结 我几乎每天都会刷题训练来使自己对各种算法随时保持一个清晰的状态.要知道眼过千遍 ...

  9. 2021大厂Java面试真题(六)

    2021大厂Java面试真题(六) * * 2021 [华为]面试真题* * : * * 1.Java 常用集合及特点?* * List:ArrayList.LinkedList.Vector.Sta ...

最新文章

  1. java中利用反射创建对象,利用java反射机制动态创建对象
  2. R语言日期函数weekdays, months, quarters julian实战(星期几、那个月、那个季度、时间差)
  3. mybatis-spring 项目简介
  4. 利用Crawlspider爬取腾讯招聘数据(全站,深度)
  5. jquery-data的三种用法
  6. P7444-「EZEC-7」猜排列【dp】
  7. linux如何全局搜索目录,Linux 全目录全文搜索
  8. 100套精美英文HTML页面源码
  9. java中super关键字的用法
  10. MySQL------报错Access denied for user ‘root‘@‘localhost‘ (using password:NO)解决方法
  11. fastjson jsonobject 转bean失败_干掉quot;FastJsonquot;?
  12. C++之模块对于 SAFESEH 映像是不安全的
  13. java控制反转_控制反转(IOC)模式
  14. 网络_Wake-on-Lan(WoL)软件推荐, 让你不在局域网也能实现网络唤醒
  15. 尽善尽美之作《Python Qt GUI与数据可视化编程》
  16. 三维重建-摄像机模型+摄像机标定(上)
  17. 中国厢式货车车体市场深度研究分析报告
  18. 创建facebook_我如何重新创建Facebook的微交互以进行功能发现
  19. php在线考试系统 附源码(一)
  20. numpy.ndarray类型方法

热门文章

  1. Flexsim循环产生不同类型和数量的临时实体
  2. 列举一台微型计算机的常用硬件,信息技术练习题七
  3. 安装Appium、Node.js、连接雷电模拟器、录制脚本
  4. 单核CPU是否有线程可见性问题?
  5. 简单实用触模式报警器
  6. 2019四川专升本计算机试题和答案,2019四川公务员考试申论试题参考答案
  7. 随机数相加等于固定值_excel固定随机数相加得一个固定值
  8. 一种软件升级程序updata的 构造思路
  9. WSF脚本详解:JS和VBS互调用
  10. C语言中将变量的数值打印到.txt文件