摘要:
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 解答: vector<vecto 阅读全文
posted @ 2020-07-14 23:32
归鸿唱晚
阅读(99)
评论(0)
推荐(0)
摘要:
给定一个没有重复数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 方法一:不用swap回溯状态 第二个swap函数的作用是保证在整个for循环中,每一次循环开 阅读全文
posted @ 2020-07-14 23:14
归鸿唱晚
阅读(120)
评论(0)
推荐(0)
摘要:
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。 示例: 输入:n = 3 输出:[ "((()))", "(()())", "(())()", "()(())", "()()()" ] ##解法一 又臭又长,还超时。 vector<string> ans; 阅读全文
posted @ 2020-07-14 22:35
归鸿唱晚
阅读(151)
评论(0)
推荐(0)
摘要:
子集树:2^n(选还是不选的问题) 排列树:n! 回溯法参数: 1.深度参数t 当t==n时递归结束,产生一个结果,将其加入结果集中。 2.当前结果 当t==n时结果完全生成。 3.结果集 保存不同搜索路径下产生的结果,通常类型为vector<T>&。 ##子集树 当所给的问题是从n个元素的集合中找 阅读全文
posted @ 2020-07-14 16:43
归鸿唱晚
阅读(228)
评论(0)
推荐(0)
摘要:
给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个 阅读全文
posted @ 2020-07-14 16:36
归鸿唱晚
阅读(89)
评论(0)
推荐(0)
摘要:
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 /*动态规划的核心是找到状态转移公式,这道题的状态转移明显是若一个子串是回文子串 且这个子串的前一个字符与后一个字 阅读全文
posted @ 2020-07-14 16:33
归鸿唱晚
阅读(104)
评论(0)
推荐(0)
摘要:
题目 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 思路 dp[i]表示以nums[i]结尾的子数组的 阅读全文
posted @ 2020-07-14 16:25
归鸿唱晚
阅读(99)
评论(0)
推荐(0)
摘要:
##最长公共子序列 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。 例如,"ace" 是 "abcde" 的子序列, 阅读全文
posted @ 2020-07-14 16:16
归鸿唱晚
阅读(195)
评论(0)
推荐(0)

浙公网安备 33010602011771号