directory
0.0.0-20240920062246-d0657495930a
Repository: https://github.com/yigmmk/leetcode.git
Documentation: pkg.go.dev
# Packages
* @lc app=leetcode.cn id=1238 lang=golang
*
* [1238] 循环码排列
*
* https://leetcode.cn/problems/circular-permutation-in-binary-representation/description/
*
* algorithms
* Medium (67.63%)
* Likes: 74
* Dislikes: 0
* Total Accepted: 8.7K
* Total Submissions: 11.6K
* Testcase Example: '2\n3'
*
* 给你两个整数 n 和 start。你的任务是返回任意 (0,1,2,,...,2^n-1) 的排列 p,并且满足:
*
*
* p[0] = start
* p[i] 和 p[i+1] 的二进制表示形式只有一位不同
* p[0] 和 p[2^n -1] 的二进制表示形式也只有一位不同
*
*
*
*
* 示例 1:
*
* 输入:n = 2, start = 3
* 输出:[3,2,0,1]
* 解释:这个排列的二进制表示是 (11,10,00,01)
* 所有的相邻元素都有一位是不同的,另一个有效的排列是 [3,1,0,2]
*
*
* 示例 2:
*
* 输出:n = 3, start = 2
* 输出:[2,6,7,5,4,0,1,3]
* 解释:这个排列的二进制表示是 (010,110,111,101,100,000,001,011)
*
*
*
*
* 提示:
*
*
* 1 <= n <= 16
* 0 <= start < 2^n
*
*
*/.
* @lc app=leetcode.cn id=17 lang=golang
*
* [17] 电话号码的字母组合
*
* https://leetcode.cn/problems/letter-combinations-of-a-phone-number/description/
*
* algorithms
* Medium (58.71%)
* Likes: 2697
* Dislikes: 0
* Total Accepted: 785.5K
* Total Submissions: 1.3M
* Testcase Example: '"23"'
*
* 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
*
* 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
*
*
*
*
*
* 示例 1:
*
*
* 输入:digits = "23"
* 输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]
*
*
* 示例 2:
*
*
* 输入:digits = ""
* 输出:[]
*
*
* 示例 3:
*
*
* 输入:digits = "2"
* 输出:["a","b","c"]
*
*
*
*
* 提示:
*
*
* 0 <= digits.length <= 4
* digits[i] 是范围 ['2', '9'] 的一个数字。
*
*
*/.
* @lc app=leetcode.cn id=216 lang=golang
*
* [216] 组合总和 III
*
* https://leetcode.cn/problems/combination-sum-iii/description/
*
* algorithms
* Medium (71.17%)
* Likes: 788
* Dislikes: 0
* Total Accepted: 320.3K
* Total Submissions: 450.1K
* Testcase Example: '3\n7'
*
* 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:
*
*
* 只使用数字1到9
* 每个数字 最多使用一次
*
*
* 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。
*
*
*
* 示例 1:
*
*
* 输入: k = 3, n = 7
* 输出: [[1,2,4]]
* 解释:
* 1 + 2 + 4 = 7
* 没有其他符合的组合了。
*
* 示例 2:
*
*
* 输入: k = 3, n = 9
* 输出: [[1,2,6], [1,3,5], [2,3,4]]
* 解释:
* 1 + 2 + 6 = 9
* 1 + 3 + 5 = 9
* 2 + 3 + 4 = 9
* 没有其他符合的组合了。
*
* 示例 3:
*
*
* 输入: k = 4, n = 1
* 输出: []
* 解释: 不存在有效的组合。
* 在[1,9]范围内使用4个不同的数字,我们可以得到的最小和是1+2+3+4 = 10,因为10 > 1,没有有效的组合。
*
*
*
*
* 提示:
*
*
* 2 <= k <= 9
* 1 <= n <= 60
*
*
*/.
* @lc app=leetcode.cn id=22 lang=golang
*
* [22] 括号生成
*
* https://leetcode.cn/problems/generate-parentheses/description/
*
* algorithms
* Medium (77.55%)
* Likes: 3483
* Dislikes: 0
* Total Accepted: 780.3K
* Total Submissions: 1M
* Testcase Example: '3'
*
* 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
*
*
*
* 示例 1:
*
*
* 输入:n = 3
* 输出:["((()))","(()())","(())()","()(())","()()()"]
*
*
* 示例 2:
*
*
* 输入:n = 1
* 输出:["()"]
*
*
*
*
* 提示:
*
*
* 1 <= n <= 8
*
*
*/.
* @lc app=leetcode.cn id=377 lang=golang
*
* [377] 组合总和 Ⅳ
*
* https://leetcode.cn/problems/combination-sum-iv/description/
*
* algorithms
* Medium (52.74%)
* Likes: 908
* Dislikes: 0
* Total Accepted: 166.7K
* Total Submissions: 316K
* Testcase Example: '[1,2,3]\n4'
*
* 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。
*
* 题目数据保证答案符合 32 位整数范围。
*
*
*
* 示例 1:
*
*
* 输入:nums = [1,2,3], target = 4
* 输出:7
* 解释:
* 所有可能的组合为:
* (1, 1, 1, 1)
* (1, 1, 2)
* (1, 2, 1)
* (1, 3)
* (2, 1, 1)
* (2, 2)
* (3, 1)
* 请注意,顺序不同的序列被视作不同的组合。
*
*
* 示例 2:
*
*
* 输入:nums = [9], target = 3
* 输出:0
*
*
*
*
* 提示:
*
*
* 1
* 1
* nums 中的所有元素 互不相同
* 1
*
*
*
*
* 进阶:如果给定的数组中含有负数会发生什么?问题会产生何种变化?如果允许负数出现,需要向题目中添加哪些限制条件?
*
*/.
* @lc app=leetcode.cn id=39 lang=golang
*
* [39] 组合总和
*
* https://leetcode.cn/problems/combination-sum/description/
*
* algorithms
* Medium (72.34%)
* Likes: 2684
* Dislikes: 0
* Total Accepted: 829.3K
* Total Submissions: 1.1M
* Testcase Example: '[2,3,6,7]\n7'
*
* 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target
* 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。
*
* candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。
*
* 对于给定的输入,保证和为 target 的不同组合数少于 150 个。
*
*
*
* 示例 1:
*
*
* 输入:candidates = [2,3,6,7], target = 7
* 输出:[[2,2,3],[7]]
* 解释:
* 2 和 3 可以形成一组候选,2 + 2 + 3 = 7 。注意 2 可以使用多次。
* 7 也是一个候选, 7 = 7 。
* 仅有这两种组合。
*
* 示例 2:
*
*
* 输入: candidates = [2,3,5], target = 8
* 输出: [[2,2,2,2],[2,3,3],[3,5]]
*
* 示例 3:
*
*
* 输入: candidates = [2], target = 1
* 输出: []
*
*
*
*
* 提示:
*
*
* 1 <= candidates.length <= 30
* 2 <= candidates[i] <= 40
* candidates 的所有元素 互不相同
* 1 <= target <= 40
*
*
*/.
* @lc app=leetcode.cn id=40 lang=golang
*
* [40] 组合总和 II
*
* https://leetcode.cn/problems/combination-sum-ii/description/
*
* algorithms
* Medium (59.51%)
* Likes: 1492
* Dislikes: 0
* Total Accepted: 481.3K
* Total Submissions: 808.9K
* Testcase Example: '[10,1,2,7,6,1,5]\n8'
*
* 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。
*
* candidates 中的每个数字在每个组合中只能使用 一次 。
*
* 注意:解集不能包含重复的组合。
*
*
*
* 示例 1:
*
*
* 输入: candidates = [10,1,2,7,6,1,5], target = 8,
* 输出:
* [
* [1,1,6],
* [1,2,5],
* [1,7],
* [2,6]
* ]
*
* 示例 2:
*
*
* 输入: candidates = [2,5,2,1,2], target = 5,
* 输出:
* [
* [1,2,2],
* [5]
* ]
*
*
*
* 提示:
*
*
* 1 <= candidates.length <= 100
* 1 <= candidates[i] <= 50
* 1 <= target <= 30
*
*
*/.
* @lc app=leetcode.cn id=78 lang=golang
*
* [78] 子集
*
* https://leetcode.cn/problems/subsets/description/
*
* algorithms
* Medium (81.17%)
* Likes: 2223
* Dislikes: 0
* Total Accepted: 716.4K
* Total Submissions: 882.6K
* Testcase Example: '[1,2,3]'
*
* 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。
*
* 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
*
*
*
* 示例 1:
*
*
* 输入:nums = [1,2,3]
* 输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
*
*
* 示例 2:
*
*
* 输入:nums = [0]
* 输出:[[],[0]]
*
*
*
*
* 提示:
*
*
* 1
* -10
* nums 中的所有元素 互不相同
*
*
*/.
* @lc app=leetcode.cn id=89 lang=golang
*
* [89] 格雷编码
*
* https://leetcode.cn/problems/gray-code/description/
*
* algorithms
* Medium (75.02%)
* Likes: 591
* Dislikes: 0
* Total Accepted: 111.2K
* Total Submissions: 148K
* Testcase Example: '2'
*
* n 位格雷码序列 是一个由 2^n 个整数组成的序列,其中:
*
* 每个整数都在范围 [0, 2^n - 1] 内(含 0 和 2^n - 1)
* 第一个整数是 0
* 一个整数在序列中出现 不超过一次
* 每对 相邻 整数的二进制表示 恰好一位不同 ,且
* 第一个 和 最后一个 整数的二进制表示 恰好一位不同
*
*
* 给你一个整数 n ,返回任一有效的 n 位格雷码序列 。
*
*
*
* 示例 1:
*
*
* 输入:n = 2
* 输出:[0,1,3,2]
* 解释:
* [0,1,3,2] 的二进制表示是 [00,01,11,10] 。
* - 00 和 01 有一位不同
* - 01 和 11 有一位不同
* - 11 和 10 有一位不同
* - 10 和 00 有一位不同
* [0,2,3,1] 也是一个有效的格雷码序列,其二进制表示是 [00,10,11,01] 。
* - 00 和 10 有一位不同
* - 10 和 11 有一位不同
* - 11 和 01 有一位不同
* - 01 和 00 有一位不同
*
*
* 示例 2:
*
*
* 输入:n = 1
* 输出:[0,1]
*
*
*
*
* 提示:
*
*
* 1 <= n <= 16
*
*
*/.
* @lc app=leetcode.cn id=90 lang=golang
*
* [90] 子集 II
*
* https://leetcode.cn/problems/subsets-ii/description/
*
* algorithms
* Medium (63.48%)
* Likes: 1182
* Dislikes: 0
* Total Accepted: 341.8K
* Total Submissions: 538.3K
* Testcase Example: '[1,2,2]'
*
* 给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。
*
* 解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。
*
*
*
*
*
* 示例 1:
*
*
* 输入:nums = [1,2,2]
* 输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]
*
*
* 示例 2:
*
*
* 输入:nums = [0]
* 输出:[[],[0]]
*
*
*
*
* 提示:
*
*
* 1
* -10
*
*
*
*
*/.