手撕代码是程序员的基本功吗?
手撕代码的题目有很多,以下是一些常见的手撕代码的题目:
两数之和(两数之和,双指针法):给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。三数之和(3数之和,双指针法):给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。最长回文子串(KMP算法):给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。盛最多水的容器(二叉树广度优先搜索):给定 n 个非负整数 a1,a2,...,an,每个数代表一个坐标点 (i, ai)。在坐标内画 n 条垂直线,使得 i 垂直线的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴构成的容器可以容纳最多的水。最短路径(Dijkstra算法):给定一个带权值的无向图和每个顶点的起始位置,求从起始位置到图中所有其他顶点的最短路径。
赞3
踩0