LeetCode 18 四数之和

题目: 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复): 0 <= a, b, c, d < n a、b、c 和 d 互不相同 nums[a] + nums[b] + nums[c] + nums[d] == target 你可以按 任意顺序 返回答案 。 解题: 循环处理,这次多了一个,应该不是双指针了吧 代码: 官方解答:排序+双指针 排序,然后先循环一次最外面的一层,再双指针,又是没有掌握双指针的一天。。。

Continue reading


LeetCode 17 电话号码的字母组合

题目: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 解题: 写一个映射表,然后把每一个数字拆分成字母组成的数组,后面数字代表的字母分开跟到前面的数组后面 代码 官方解答:回溯

Continue reading


LeetCode 15 三数之和

题目: 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 解题: 三层循环,加起来为0的数组合并起来 代码: 提交没有通过,最终结果没有去重 官方解答:排序+双指针 我终究还是没能把双指针用到实例中去

Continue reading


LeetCode 14 最长公共前缀

题目: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 解题: 看到哪一位不相同了,前缀就是之前的那些 代码: 官方解答1:横向扫描 官方解答2:纵向扫描 官方解答3:分治 官方解答4:二分查找法 我的方法算是纵向扫描了,就代码量来说还是纵向扫描最少,也最好理解

Continue reading


LeetCode 13 罗马数字转整数

题目: 罗马数字包含以下七种字符:I, V, X, L,C,D 和 M。 例如, 罗马数字 2 写作 II ,即为两个并列的 1。12 写作 XII ,即为 X + II 。27 写做  XXVII, 即为 XX + V + II 。 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写作 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况: I 可以放在 V (5) 和 X (10) […]

Continue reading


LeetCode 12 整数转罗马数字

题目: 罗马数字包含以下七种字符:I, V, X, L,C,D 和 M。 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。27 写做  XXVII, 即为 XX + V + II 。 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况: I 可以放在 V (5) 和 X (10) […]

Continue reading