出了个编程题作为第一题,题目很简单就是一个列表找最大值:
var list = List.of(5, 23, 6, 112, 44, 33, 31);
// 找出 list 中的最大值并输出
但是没想到这么多人卡在这题上了😓,讲道理这题如果在 leecode 上应该是 very easy 的难度吧,各位 v 友们觉得呢,是题目太难了还是面试的人太水了?
102
xuanbg 2022-06-24 18:11:26 +08:00
var list = List.of(5, 23, 6, 112, 44, 33, 31);
int max = list.get(0); for (int i : list){ max = max >= i ? max : i; } System.out.println(max); |
103
shanghai1943 2022-06-24 18:13:22 +08:00
这有啥诈。。题目只说了输出,没说如何高效输出。我觉得应聘者是不是太怂了,内心戏太多了导致不敢下手。
|
104
ForkNMB 2022-06-24 18:20:22 +08:00
我猜大概是他们在心中默背快排发现记不起来就觉得做不出来了
|
106
muchenlou 2022-06-24 18:22:34 +08:00 via iPhone
想投简历试试。。。
|
109
Wdafff 2022-06-24 18:24:48 +08:00
被 var 吓到了吧😅
|
110
muchenlou 2022-06-24 18:26:39 +08:00 via iPhone
或者给个邮箱,让我投个简历。
|
111
L4Linux 2022-06-24 18:29:20 +08:00 via Android
编程题能上网查 api 不?我现在离开 docs oracle 不会写 Java ,离开 cppreference 不会写 C++。
不能查的话,考啥都挺扯的。 |
114
dengji85 2022-06-24 18:55:09 +08:00
第一眼知道循环能写出来,但自己会试图揣测面试官的用意,是在考什么,是否有坑
|
116
z1645444 2022-06-24 19:00:42 +08:00
我感觉面试中的 easy 题应该是比 op 给出的题目难一些的
这个由于太过于简单,平时写题当然秒杀,但是出现在面试中,难免会多想:“面试官出这么简单的题目,不对劲,肯定有猫腻”,然后就一想想很久,但是不至于甚至上一个 while 的解法都不肯说出来吧 |
117
iwh718 2022-06-24 19:07:30 +08:00
前几天我做的面试题,题目让把一些列时间改成指定格式,我没看懂题目是干什么,问面试的,结果面试的也说是我想的那样子,结果我也没做好,中途说可以查资料,我挺惊讶的,就百度了(当时没挂代理),然后看了几个包裹 MDN ,MDN 太慢了,我就看了其他几个解答,后面觉得不靠谱我又看了 MDN ,翻译了英文,最后面试问我英文文档是不是都要翻译,说效率是不是比准确度更重要。说实话我之前觉得面试很好的,没有一个题目难为人,都是基础的。聊着也很和谐。这几个问题给我问懵了。远程录屏面试,我还有心思看英文目录找结果,或者等 MDN 刷新出来吗,后面没做好题目,心态崩了。结束后,我又看了一遍题目,想了很久才看出来要求,就是很简单的写个社区回帖那种时间工具,我正没看出来那个题目是这个意思,当时也是紧张没理解。虽然面试凉了,也发现自己很笨,写了几年代码,基础题都不会。就会写垃圾代码。唉。
|
118
bigxianyu 2022-06-24 19:11:01 +08:00 via Android
语言这种东西,要多练
|
120
asanelder 2022-06-24 19:17:04 +08:00
@monkeyWie #90 md, 都这么菜的么, 俺突然对自己好有信心了, 现在 leetcode hard 级别做不出来, 都不敢出去面试了...
|
121
imycc 2022-06-24 19:18:32 +08:00
可能刷题的时候跳过了吧,你要不加大点难度,求从大到小求前 k 个数值(
|
122
boks 2022-06-24 19:18:59 +08:00
槽,我想起来之前去面试前端,面试官让我手写 vue 的 v-for 输出数组的姓名和年龄,还有 Promise 封装函数。我写完说:就这? 面试官说好多人写不出来😂
|
123
loryyang 2022-06-24 19:34:36 +08:00
你别说,我们当年面试过一个北大的同学,写不出数组反转(不是链表)
|
124
tzl 2022-06-24 19:51:39 +08:00
java 面试这么简单的吗?两年前毕业连个 java 面都没,转行 c++了,感觉亏了呀
|
125
cherryas 2022-06-24 20:24:40 +08:00
问这问题很没劲,但凡学过高强度学过会点 java 都能写出来, 真答了 for 循环在你这等于没过.
|
127
ffgrinder 2022-06-24 20:38:26 +08:00
我觉得好像大家都跑题了。这题核心就是写个 O(n)的算法吧,for 不 for 的只是实现方式?哪怕逐个 pop 都行吧(我不清楚 java 的 reduce 是不是线性时间的)。
sort 一定是不应该过的,因为在这个 case 下慢和蠢。 |
128
Bingchunmoli 2022-06-24 21:08:04 +08:00
第一反应就是冒泡。QWQ
|
129
onlineme 2022-06-24 21:35:59 +08:00 via Android
楼主我复习了冒泡算法
|
130
securityCoding 2022-06-24 21:44:58 +08:00
我出个快排算法题面试了七八个人只有一个写出来了。
|
131
AyaseEri 2022-06-24 22:09:28 +08:00
不大可能有人写不出,但是写不出确实在排查问题的能力上有所欠缺,觉得有诈问清楚就完事了。
|
132
yangbin9317 2022-06-24 22:17:14 +08:00
分析:列表中的所有数值都比最大值小
class Solution: def findMax(self, l: List[int]) -> int: import random while True: candidate = random.choice(l) if not all(map(lambda x: x <= candidate, l)): continue return candidate |
133
Foxii 2022-06-24 23:00:15 +08:00 via Android
有没有那种 就是那种
k8s 启动 list.size ()个微服务 启动完毕 kafka 推消息给中心 中心发启动倒计时消息 微服务分别跑 list.get ( i )秒的倒计时 完了用 Kafka 推过来,取第 list.size ()个的秒数 |
134
mikywei 2022-06-24 23:30:59 +08:00
java 有 var 这个数据类型吗?
|
136
suxiaohuan 2022-06-24 23:50:12 +08:00
是因为 var 吧,你不出这题我都不知道 Java 还能用 var 了……
我第一反应就是不可能这么简单吧?肯定是因为 var 有什么我不了解的特性,导致直接写 for loop 会出现难以察觉的神秘 bug 不过要是反正也不知道怎么办的话,难道不该先硬写一个吗── |
137
LGA1150 2022-06-25 00:09:24 +08:00
int max = Integer.MIN_VALUE;
for (int i : list) max = Math.max(max, i); |
138
LGA1150 2022-06-25 00:12:07 +08:00
@ifdef List.of() 返回的 List 是不可变对象,不能原地 sort
| java.lang.UnsupportedOperationException | at ImmutableCollections.uoe (ImmutableCollections.java:142) | at ImmutableCollections$AbstractImmutableList.sort (ImmutableCollections.java:261) | at Collections.sort (Collections.java:145) |
140
nightwitch 2022-06-25 01:04:53 +08:00
for 循环本身就是最优解了,O(1)空间复杂度,O(n)时间复杂度,缓存友好。
|
141
nightwitch 2022-06-25 01:10:45 +08:00
@Mithril #10 双层打印菱形也不算那么直观吧,印象里打印任意层数的菱形要算每层打印多少个空格多少个*这种还是挺琐碎的,得用纸笔画几个图案找规律才行
|
142
CookCoder 2022-06-25 06:53:17 +08:00
这题的难度值得去争议一下?
|
143
sadfQED2 2022-06-25 08:22:25 +08:00 via Android
你这个题目,我第一眼也觉得有诈,肯定是想考什么 var 或者 list.of 的神奇特性。
我自己面试,第一题喜欢问多线程并发顺序打印 123456 。这题目好理解,一听就懂题目意思,而且一眼就能看出对方有没有写过并发程序以及对编程语言的熟悉程度 |
144
sch1111878 2022-06-25 09:18:49 +08:00
@arvinsilm 89 楼 用了 MIN_VALUE 考虑了哈哈
|
145
ffkjjj 2022-06-25 09:19:30 +08:00
这么离谱的吗
|
146
Austin2035 2022-06-25 10:05:25 +08:00
上次面试遇到了,说是找最大值,但是他描述的是找第一个 max 啥的。我就直接怼了个快排。。。他说,最简单的方法是什么?哈哈哈。我才懂,初值为数组首元素,遍历一圈就有了。
|
147
xiaofan305 2022-06-25 10:15:41 +08:00 via Android
终于看到一题我会的
|
148
neptuno 2022-06-25 10:42:51 +08:00 via iPhone
我第一眼也觉得有诈,但也要说一下最简单的 for 循环解法吧,然后再想别的方法
|
149
VincentWang 2022-06-25 10:51:19 +08:00
@monkeyWie #20 必须 for 才算过?果然面试官的思路面试者是跟不上的..... 不知道面试官在考察什么....
|
150
lucaslee 2022-06-25 11:37:16 +08:00
杠一下,楼主是必须要招了解 Java 10 以上特性的人么?
|
151
Mithril 2022-06-25 12:57:09 +08:00
@nightwitch 确实,但是编程这东西,大部分时间应对的都是这种繁琐又需要找规律的工作,又不是造火箭,哪里天天有那么多高难度问题。
而且作为面试或者笔试题,也不需要你完全写对,循环套对了,大概思路有了就行。不需要真的算对那些细节,那是 debug 的工作。 |
152
wdwwtzy 2022-06-25 13:18:55 +08:00
var list = new []{ 1, 3, 5 };
list.Max(); // 5 欢迎大家来试用一下 C# |
153
cheng6563 2022-06-25 13:20:07 +08:00
@lu5je0 我遇见过 10 年老 Java 根本不会用排序 API ,排序全靠 SQL 查出来时的 order by
|
154
secondwtq 2022-06-25 13:39:36 +08:00
赛博空城计了属于是
|
155
xyjincan 2022-06-25 13:54:38 +08:00 via Android
写出来也不是一定要
|
156
janus77 2022-06-25 14:27:05 +08:00
我也感觉有诈。。。。你没说要求,但是有人会觉得你设了要求故意不说,希望你用很高级的解法做出来,万一我用了简单方法解出来被你说不是你想的答案怎么办?
而且就算我这个题没解出来也不能证明我是真的那么菜,我第一题解不出来但是最难得题解出来了,这还不能说明我的实力吗?根本没必要纠结第一题能不能做出来 |
157
wangkun025 2022-06-25 14:36:58 +08:00
```ruby
[5, 23, 6, 112, 44, 33, 31].max ``` |
158
xsqfjys 2022-06-25 16:07:32 +08:00
你不按套路出牌呀,网上的 java 面试题都是些什么破东西应该都有了解
|
159
xsqfjys 2022-06-25 16:11:22 +08:00
我要是平时遇到应该会用 stream.max
|
160
clf 2022-06-25 16:16:17 +08:00
我司还遇到了问 Integer 间比较为什么不推荐用 ==,说不知道的。
|
162
TWorldIsNButThis 2022-06-25 20:00:48 +08:00 via iPhone
@11232as 对象类型要用 equal
==是比较对象的地址 |
163
zsp1987 2022-06-25 20:43:18 +08:00 via Android
on 肯定可以做出来。如果做出来,延伸问题到 topk ,然后 list 有特别大,考察用哪种排序。
|
164
11232as 2022-06-25 20:50:22 +08:00
@TWorldIsNButThis 果然自己还是不够熟悉啊...
|
165
narfnas 2022-06-25 20:52:29 +08:00
就是直接 for 啊,只找固定最大个都是 for ,时间复杂度 on
sort 那是 onlogn |
166
TWorldIsNButThis 2022-06-25 20:54:33 +08:00 via iPhone 1
@11232as 这其实是 Java 的问题
现代语言比如 kotlin 有运算符重载,默认会把对象的==重载为 equal |
168
ecloud 2022-06-25 22:12:47 +08:00
很多 java 程序员实际上是“面向框架编程”,比如 Spring
|
169
hundandadi 2022-06-25 22:16:21 +08:00 via Android
有点好奇,用 java8 以上的都是啥行业的呢
|
170
Zwying 2022-06-25 23:34:56 +08:00
什么牛马 var
|
173
shmilypeter 2022-06-26 07:56:34 +08:00
@Mithril 精通大数据深入高并发那是背的。
代码倒是真的写过,不过就是复制粘贴的业务代码,一多半还是工具自动生成的,然后 debug 调调。 中国只考八股不考算法,要不然一些复杂的算法,背也给你背下来 |
174
monkeyWie OP @hundandadi 互联网行业,新项目上新 jdk 不是很正常吗,还死守着 jdk8?
|
175
maji91fan 2022-06-26 10:50:41 +08:00
一个两年半没写过代码的人都觉得这不会纯粹是逻辑不太好,和计算机没啥关系
|
176
jwenjian 2022-06-26 11:15:16 +08:00
return list.get(3)
|
177
lingalonely 2022-06-26 14:24:06 +08:00
我面试就不爱问八股,直接一道逻辑题,甚至是现场想的,甚至是存在问题,看面试者的分析能力,能有条有理的分析基本就通过了,基本 30 分钟一道题,是不是不讲武德[笑脸]。
|
178
fhj 2022-06-26 16:57:37 +08:00
大佬,工资多少哈哈
|
179
hanai 2022-06-26 23:39:13 +08:00 via iPhone
觉得有诈的,当场直接问下面试官不就行了?
|
180
hundandadi 2022-06-27 07:58:53 +08:00 via Android
死守谈不上吧,这种东西也不是一个小小程序员可以定的不是吗,我就是好奇用 java8 以上的有啥优点吗,没必要被鄙视吧
|
181
jjwjiang 2022-06-27 09:18:08 +08:00
@hundandadi 最简单的有没有 Stream ,操作集合的时候那是天差地别的差距
|
182
karatsuba 2022-06-27 09:40:51 +08:00
面试出这种题干嘛呢,大一的我说不定会毫不犹豫写个 for
|