0%


题目描述

给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true

注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。

示例 1:

输入:s = "leetcode", wordDict = ["leet", "code"]
输出:true
解释:返回 true 因为 leetcode 可以由 leetcode 拼接成。

示例 2:

输入:s = "applepenapple", wordDict = ["apple", "pen"]
输出:true
解释:返回 true 因为 applepenapple 可以由 applepenapple 拼接成。

示例 3:

输入:s = "catsandog", wordDict = ["cats", "dog", "sand", "and", "cat"]
输出:false

提示:

  • 1 <= s.length <= 300
  • 1 <= wordDict.length <= 1000
  • 1 <= wordDict[i].length <= 20
  • swordDict[i] 仅由小写英文字母组成
  • wordDict 中的所有字符串互不相同
阅读全文 »


题目描述

假设你有一个单向链表 L,其首节点被标为 head,这个链表代表了小美的工作任务流程:

L0 → L1 → … → Ln-1 → Ln

你需要对其进行重新组织,以达到以下新的工作任务流程:

L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → …

请注意,这里不能只修改节点任务的内容,而是需要实际地进行节点任务的交换。

示例 1:

输入:L = 1 → 2 → 3 → 4 → 5
输出:1 → 5 → 2 → 4 → 3

阅读全文 »


题目描述

给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1

你可以认为每种硬币的数量是无限的。

示例 1:

输入:coins = [1, 2, 5], amount = 11
输出:3
解释:11 = 5 + 5 + 1

示例 2:

输入:coins = [2], amount = 3
输出:-1

示例 3:

输入:coins = [1], amount = 0
输出:0

提示:

  • 1 <= coins.length <= 12
  • 1 <= coins[i] <= 2^31 - 1
  • 0 <= amount <= 10^4
阅读全文 »


题目描述

给你一个整数 n ,返回和为 n 的完全平方数的最少数量 。

完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,14916 都是完全平方数,而 311 不是。

示例 1:

输入:n = 12
输出:3
解释:12 = 4 + 4 + 4

示例 2:

输入:n = 13
输出:2
解释:13 = 4 + 9

提示:

  • 1 <= n <= 10^4
阅读全文 »


题目描述

给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。

示例 1:

输入:numRows = 5
输出:[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]

示例 2:

输入:numRows = 1
输出:[[1]]

提示:

  • 1 <= numRows <= 30
阅读全文 »


题目描述

提供一个整数数组 nums,从中选 m 个数,打印所有和为 n 的 二维数组,注意兼顾性能。

示例 1:

输入:nums = [-1, 1, 2, 3, 4, 5, 6], m = 2, n = 5
输出:[[1, 4], [2, 3], [-1, 6]]

示例 2:

输入:nums = [-1, 1, 2, 3, 4, 5, 6], m = 3, n = 6
输出:[[-1, 1, 6], [-1, 2, 5], [-1, 3, 4], [1, 2, 3]]

阅读全文 »


题目描述

给定一个长度为 n0 索引整数数组 nums。初始位置为 nums[0]。每个元素 nums[i] 表示从索引 i 向后跳转的最大长度。换句话说,如果你在索引 i 处,你可以跳转到任意 (i + j) 处(0 <= j <= nums[i]i + j < n

返回到达 n - 1 的最小跳跃次数。测试用例保证可以到达 n - 1

示例 1:

输入:nums = [2, 3, 1, 1, 4]
输出:2
解释:跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。

示例 2:

输入:nums = [2, 3, 0, 1, 4]
输出:2

提示:

  • 1 <= nums.length <= 10^4
  • 0 <= nums[i] <= 1000
  • 题目保证可以到达 n - 1
阅读全文 »


题目描述

给你一个非负整数数组 nums ,你最初位于数组的第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false

示例 1:

输入:nums = [2, 3, 1, 1, 4]
输出:true
解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。

示例 2:

输入:nums = [3, 2, 1, 0, 4]
输出:false
解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。

提示:

  • 1 <= nums.length <= 10^4
  • 0 <= nums[i] <= 10^5
阅读全文 »