手撕代码是程序员的基本功吗?
手敲代码不是程序员的基本功。
程序员的基本功是对代码的理解度,包含优秀的算法思想和优雅的代码编程习惯,而手敲代码只是程序员实现编程过程中的一个环节。
用“手撕代码”来考验程序员能力的原因如下:
考察程序员的基本功是否扎实、代码是否严谨、是否能快速掌握新技术的核心要领等。考察程序员的逻辑思维能力、编程能力和学习能力。考察程序员是否适应和满足公司的技术要求和相关标准。此外,在面试过程中,面试官会通过让程序员手撕代码来观察其编程习惯、技术能力和对问题的理解程度等,从而更准确地评估其能力和潜力,确定是否适合进入下一轮面试或是否符合公司的需求。
手撕代码的题目有很多,以下是一些常见的手撕代码的题目:
两数之和(Two Sum):给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的两个整数,并返回它们的数组下标。三数之和(3Sum):给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。最长回文子串(Longest Palindromic Substring):给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。三数之积(3Product):给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 abc = n?找出所有满足条件且不重复的三元组。盛最多水的容器(Container With Most Water):给定 n 个非负整数 a1,a2,...,an,每个数代表一个坐标点 (i, ai)。在坐标内画 n 条垂直线,使得 i 垂直线的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴构成的容器可以容纳最多的水。合并两个有序链表(Merge Two Sorted Lists):将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
赞2
踩0