Leetcode题解 0007期

0017题 电话号码的字母组合【Letter Combination of a Phone Number】

题目:
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。
给出数字到字母的映射如下(与电话按键相同)。注意: 1 不对应任何字母。
这里写图片描述
示例:

输入:"23"
输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

说明:
尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。

题目相对严谨

需要注意:
1. 输入数据有一组是空字符串的情况,此时返回空List而不是含有一个空字符串的List(真正了解到Leetcode这边数据的复杂性,很要求实践中的鲁棒性,说实话不错)

解题思路:
让我再一次温习了经典的回溯算法,并对此算法有了更新的理解。

经典回溯算法题目,建表之后直接做了,很简单,无需post代码。


0018题 四数之和【4Sum】

题目:
给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。

示例:

给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。

满足要求的四元组集合为:
[
  [-1,  0, 0, 1],
  [-2, -1, 1, 2],
  [-2,  0, 0, 2]
]

题目相对严谨

需要注意的点与3Sum和Two Sum相同,具体参见这两篇博文:https://blog.csdn.net/bright_silmarillion/article/details/80579777
https://blog.csdn.net/bright_silmarillion/article/details/80506206

解题思路:
这题还没完没了了,不过貌似是这个系列的最后一道题了,和前两道题相同,不过时间复杂度又得高了……不知道有没有什么数据结构比如说【树】可以解决这个问题呢……但是要找出全部的四元组就必须得都算一遍?其实有些地方还是可以剪枝的吧……

重复题目不想post代码。


0019题 删除链表的倒数第N个节点【Remove Nth Node From End of List】

题目:
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
给定的 n 保证是有效的。

示例:

给定一个链表: 1->2->3->4->5, 和 n = 2.
当删除了倒数第二个节点后,链表变为 1->2->3->5.

进阶要求:你能尝试使用一趟扫描实现吗?

题目相对严谨

需要注意:
1. 链表题目自始至终都要注意越界问题,小心驶得万年船

解题思路:
很经典的一遍扫描删除节点问题,只要让一个指针在前面先跑n+1,后面一个指针在后面追,俗称快慢指针即可解决。

无需post代码。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值