📝 题目描述
给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果 s 可以由字典中若干单词按顺序拼接而成,返回 true;否则返回 false。
注意:
- 字典中的单词可以重复使用。
- 不要求字典中出现的单词都必须用上。
📌 示例
示例 1
输入:
给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果 s 可以由字典中若干单词按顺序拼接而成,返回 true;否则返回 false。
注意:
输入:
给你一个整数数组 coins,表示不同面额的硬币;以及一个整数 amount,表示总金额。
请你计算并返回可以凑成总金额所需的 最少的硬币个数。
如果没有任何一种硬币组合能组成总金额,返回 -1。
你可以假设每种硬币的数量是无限的。
输入:
coins = [1,2,5]
amount = 11
给你一个仅由 '(' 和 ')' 组成的字符串 s,找出最长 有效括号子串 的长度。
有效括号指:左右括号必须严格成对匹配,如:
() (()) ()()
给定一个正整数 numRows,生成「杨辉三角」的前 numRows 行。
在杨辉三角中,每个数是它左上方与右上方两个数的和:
你正在爬楼梯,需要走到第 n 阶。
每次你可以爬 1 步 或 2 步。
问:到达第 n 阶有多少种不同的方法?
输入:
n = 2
给定链表的头节点 head,要求每 k 个节点一组进行翻转,返回修改后的链表。
输入:head = [1,2,3,4,5], k = 2
输出:[2,1,4,3,5]
解释:每 2 个节点为一组翻转,前 4 个节点分成两组(1→2、3→4),分别翻转为 2→1、4→3,剩余节点 5 保持不变。
设计实现满足 LRU(最近最少使用) 缓存约束的数据结构 LRUCache,支持以下操作:
LRUCache(int capacity):以正整数 capacity 初始化缓存容量;int get(int key):若 key 存在则返回对应值,否则返回 -1;void put(int key, int value):若 key 存在则更新值;若不存在则插入键值对,若容量超限则逐出最久未使用的键。
要求 get 和 put 操作的平均时间复杂度为 (O(1))。给定一个链表,要求两两交换其中相邻的节点,并返回交换后链表的头节点。要求不能修改节点的数值,只能通过调整节点的指针完成交换。
输入:head = [1,2,3,4]
输出:[2,1,4,3]
解释:原链表中相邻节点(1和2、3和4)两两交换,指针调整后得到新链表。
输入:head = []
输出:[]
给定一个链表,要求删除链表的倒数第 n 个结点,并返回链表的头结点。
val 和指向下一结点的指针 next。输入:head = [1,2,3,4,5], n = 2
输出:[1,2,3,5]
解释:链表倒数第 2 个结点是 4,删除后链表变为 1→2→3→5。
给定一个链表数组,其中每个链表均为升序排列,要求将所有链表合并为一个新的升序链表并返回。
输入:lists = [[1,4,5],[1,3,4],[2,6]]
输出:[1,1,2,3,4,4,5,6]
解释:三个升序链表合并后,得到整体升序的新链表。
输入:lists = []
输出:[]