一、题目大意标签:分治https://leetcode.cn/problems/different-ways-to-add-parentheses给你一个由数字和运算符组成的字符串 expression,按不同优先级组合数字和运算符,计算并返回所有可能组合的结果。你可以按任意顺序返回答案。生成的测试用例满足其对应输出值符合32位整数范围,不同结果的数量不超过104。示例1:输入:expression="2-1-1"输出:[0,2]解释:((2-1)-1)=0(2-(1-1))=2示例2:输入:expression="23-45"输出:[-34,-14,-10,-10,10]解释:(2(3-(4
一、题目大意标签:动态规划https://leetcode.cn/problems/maximum-subarray给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。示例1:输入:nums=[-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1]的和最大,为 6。示例2:输入:nums=[1]输出:1示例3:输入:nums=[5,4,-1,7,8]输出:23提示:1-104进阶:如果你已经实现复杂度为O(n)的解法,尝试使用更为精妙的分治法求解。二、解题思路定义一个max保存遍
一、题目大意标签:动态规划https://leetcode.cn/problems/2-keys-keyboard最初记事本上只有一个字符'A'。你每次可以对这个记事本进行两种操作:CopyAll(复制全部):复制这个记事本中的所有字符(不允许仅复制部分字符)。Paste(粘贴):粘贴上一次复制的字符。给你一个数字 n,你需要使用最少的操作次数,在记事本上输出恰好 n 个'A'。返回能够打印出 n 个'A'的最少操作次数。示例1:输入:3输出:3解释:最初,只有一个字符'A'。第1步,使用CopyAll操作。第2步,使用Paste操作来获得'AA'。第3步,使用Paste操作来获得'AAA'。
欢迎关注个人公众号:爱喝可可牛奶LeetCode39.组合总和40.组合总和II131.分割回文串LeetCode39.组合总和分析回溯可看成对二叉树节点进行组合枚举,分为横向和纵向每次往sum添加新元素时,必须明确从can哪个位置开始,定义变量pos返回条件sum==target或sum>target;横向结束条件没有新元素可以添加了即posbt(can,sum,tar,pos){ if(sum==tar)addreturn;if(sum>tar)pos++return;for(inti=pos;i这个回溯考虑sum>tar时,pos++不应该写在第3行,这样导致回溯减掉的元素值与递归添加的
欢迎关注个人公众号:爱喝可可牛奶LeetCode39.组合总和40.组合总和II131.分割回文串LeetCode39.组合总和分析回溯可看成对二叉树节点进行组合枚举,分为横向和纵向每次往sum添加新元素时,必须明确从can哪个位置开始,定义变量pos返回条件sum==target或sum>target;横向结束条件没有新元素可以添加了即posbt(can,sum,tar,pos){ if(sum==tar)addreturn;if(sum>tar)pos++return;for(inti=pos;i这个回溯考虑sum>tar时,pos++不应该写在第3行,这样导致回溯减掉的元素值与递归添加的
一、题目大意标签:动态规划https://leetcode.cn/problems/coin-change给你一个整数数组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提示:110二、解题思路每个硬币可以用无限多次,所以是完全背包问题。
一、题目大意标签:动态规划https://leetcode.cn/problems/ones-and-zeroes给你一个二进制字符串数组strs和两个整数m和n。请你找出并返回strs的最大子集的长度,该子集中最多有m个0和n个1。如果x的所有元素也是y的元素,集合x是集合y的子集。示例1:输入:strs=["10","0001","111001","1","0"],m=5,n=3输出:4解释:最多有5个0和3个1的最大子集是{"10","0001","1","0"},因此答案是4。其他满足题意但较小的子集包括{"0001","1"}和{"10","1","0"}。{"111001"}不满足
一、题目大意标签:动态规划https://leetcode.cn/problems/coin-change给你一个整数数组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提示:110二、解题思路每个硬币可以用无限多次,所以是完全背包问题。
一、题目大意标签:动态规划https://leetcode.cn/problems/ones-and-zeroes给你一个二进制字符串数组strs和两个整数m和n。请你找出并返回strs的最大子集的长度,该子集中最多有m个0和n个1。如果x的所有元素也是y的元素,集合x是集合y的子集。示例1:输入:strs=["10","0001","111001","1","0"],m=5,n=3输出:4解释:最多有5个0和3个1的最大子集是{"10","0001","1","0"},因此答案是4。其他满足题意但较小的子集包括{"0001","1"}和{"10","1","0"}。{"111001"}不满足
一.题目给如下两个表,写一个查询语句,求出在每一个工资发放日,每个部门的平均工资与公司的平均工资的比较结果(高/低/相同)。工资表:salaryidemployee_idamountpay_date1190002017-03-312260002017-03-3133100002017-03-314170002017-02-285260002017-02-286380002017-02-28职员表:employeeemployee_iddepartment_id112232表salary中employee_id字段是表employee中employee_id字段的外键。对于如上样例数据,结果为: