众所周知,微软以及诸多其他大厂的面试算法题主要是以leetcode为素材的改编,已经做了三四年的面试官,现在发一些面试真题以及我自己和同事作为面试官的改编思路,希望可以帮到大家。我将会做一个系列,计划将大部分的leetcode原题过一遍,再附上面试真题的改写思路,尽量讲得傻瓜。
废话不多说,正题开始:
1. 我们先来看leetcode上第1号问题:Two Sum:
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
简单题,考的是哈希表,暴力两重循环必挂。现在网上的帖子都喜欢和你说leetcode 第XX题 是高频题,其实都是懒人思维,属于新手的思维误区。真正高频的是一些特定的知识点,如果按这种“原题照搬”思维,题目稍微做一些变招,大概率