算法----排列组合
sunlanchang
北京邮电大学-计算机硕士,[email protected]
展开
-
LeetCode 842. 将数组拆分成斐波那契序列 (回溯)
Description 给定一个数字字符串 S,比如 S = “123456579”,我们可以将它分成斐波那契式的序列 [123, 456, 579]。 形式上,斐波那契式序列是一个非负整数列表 F,且满足: 0 <= F[i] <= 2^31 - 1,(也就是说,每个整数都符合 32 位有符号整数类型); F.length >= 3; 对于所有的0 <= i < F.length - 2,都有 F[i] + F[i+1] = F[i+2] 成立。 另外,请注意,将字符串拆分成原创 2020-12-09 11:15:53 · 164 阅读 · 0 评论 -
Leetcode 1248. 统计优美子数组(数学)
Description 给你一个整数数组 nums 和一个整数 k。 如果某个 连续 子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」。 请返回这个数组中「优美子数组」的数目。 示例 1: 输入:nums = [1,1,2,1,1], k = 3 输出:2 解释:包含 3 个奇数的子数组是 [1,1,2,1] 和 [1,2,1,1] 。 示例 2: 输入:nums = [2...原创 2020-04-21 19:45:20 · 303 阅读 · 0 评论 -
LeetCode 17. 电话号码的字母组合
Description 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. Solution 与Leetcode 784. 字母大小写全排列相同。集合中选择元素组合即...原创 2019-11-01 16:14:55 · 110 阅读 · 0 评论 -
Leetcode 784. 字母大小写全排列(集合中选择元素进行组合)
Description 给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。 示例: 输入: S = "a1b2" 输出: ["a1b2", "a1B2", "A1b2", "A1B2"] 输入: S = "3z4" 输出: ["3z4", "3Z4"] 输入: S = "12345" 输出: ["12345"] Solution...原创 2019-11-01 15:56:24 · 272 阅读 · 0 评论 -
剑指offer 字符串的排列(全排列回溯、DFS)
描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入描述: 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。 Solution 常规DFS,注意返回返回数组进行去重、排序处理。 class Solution: def __init__(...原创 2019-08-19 17:33:04 · 389 阅读 · 0 评论 -
LeetCode 47. 全排列 II
Description 给定一个可包含重复数字的序列,返回所有不重复的全排列。 示例: 输入: [1,1,2] 输出: [ [1,1,2], [1,2,1], [2,1,1] ] Description class Solution: def permuteUnique(self, nums): res = [] def backtrack...原创 2019-10-30 11:41:08 · 102 阅读 · 0 评论 -
LeetCode 46. 全排列
Description 给定一个没有重复数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] Solution class Solution: def permute(self, nums): res = []...原创 2019-10-30 11:39:59 · 91 阅读 · 0 评论 -
LeetCode 90. 子集 II(组合)
Description 给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: [1,2,2] 输出: [ [2], [1], [1,2,2], [2,2], [1,2], [] ] Solution 参考:LeetCode题解 class Solution(object): def su...原创 2019-10-30 10:34:46 · 150 阅读 · 0 评论 -
LeetCode 78. 子集(组合)
Description 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] Solution 回溯。参考:LeetCode题解 class Solu...原创 2019-10-30 09:59:06 · 83 阅读 · 0 评论