美团Java一面

  1. 面试官介绍团队,现在做的方向,聊了会
  2. 介绍阿里的项目,讲完了1个,没啥问题,又讲第2个
  3. 讲完项目,没问题,做算法题:一个数组,随机打乱元素位置,不能在原位置,要求时间复杂度O(N),空间复杂度O(1)
  4. 整了半天,勉强写出来了。。。面试官看起来不是很高兴的样子
  5. 整个面试就20多分钟,也不知道啥情况。。。
#美团求职进展汇总#
全部评论
算法题解法: //解法:使用 Fisher-Yates 洗牌来确保所有元素都被随机打乱。 //在洗牌过程中,确保每个元素不会被放回到原位置上。 public static void shuffle(int[] arr) { Random random = new Random(); for (int i = arr.length - 1; i >= 0; i--) { int j = random.nextInt(i + 1); // 确保每个元素不会在原来的位置 if (j == i) { // 如果选择的下标和当前位置相同,选择另一个下标,确保不会是原位置 j = (j + 1) % (i + 1); } //swap int temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; } }
3 回复 分享
发布于 09-21 15:08 湖北
点赞 回复 分享
发布于 09-20 14:43 北京
这个算法咋做。我面字节也碰到了
点赞 回复 分享
发布于 09-20 14:51 广东

相关推荐

1 14 评论
分享
牛客网
牛客企业服务