题目25K个一组翻转链表
给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。
k 是一个正整数,它的值小于或等于链表的长度。
如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。
用例
给你这个链表:1->2->3->4->5
当 k = 2 时,应当返回: 2->1->4->3->5
当 k = 3 时,应当返回: 3->2->1->4->5
解题思路
- 可以利用一个栈实现节点的存储和调用
- 空间O(1)的解法
代码
1 |
|
464我能赢吗
在 “100 game” 这个游戏中,两名玩家轮流选择从 1 到 10 的任意整数,累计整数和,先使得累
计整数和达到 100 的玩家,即为胜者。
如果我们将游戏规则改为 “玩家不能重复使用整数” 呢?例如,两个玩家可以轮流从公共整数池
中抽取从 1 到 15 的整数(不放回),直到累计整数和>= 100。
给定一个整数 maxChoosableInteger (整数池中可选择的最大数)和另一个整数desiredTotal
(累计和),判断先出手的玩家是否能稳赢(假设两位玩家游戏时都表现最佳)?
你可以假设 maxChoosableInteger 不会大于 20, desiredTotal 不会大于 300。
解题思路
dfs遍历,并用状态压缩求解
代码
1 | class Solution: |
467环绕字符串中唯一的子字符串
把字符串 s 看作是“abcdefghijklmnopqrstuvwxyz”的无限环绕字符串,所以 s 看起来是这样的:”…zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd….”.
现在我们有了另一个字符串 p 。你需要的是找出 s 中有多少个唯一的 p 的非空子串,尤其是当你的输入是字符串 p ,你需要输出字符串 s 中 p 的不同的非空子串的数目。
注意: p 仅由小写的英文字母组成,p 的大小可能超过 10000。
思路
检验字符串中的连续递增子串,注意是循环的,存储下每个字母作为结尾时的最大长度,因为最长的必然包含较短的
代码
1 | class Solution: |
发布时间: 2020-05-16
最后更新: 2020-05-21
本文标题: leetcode-day5
本文链接: http://huangketsudou.github.io/2020/05/16/leetcode-day5/
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可。转载请注明出处