![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
力扣刷题
文章平均质量分 72
自用c++学习
Shaco#
这个作者很懒,什么都没留下…
展开
-
39. 组合总和(暴力DFS)
给你一个的整数数组candidates和一个目标整数target,找出candidates中可以使数字和为目标数target的 所有,并以列表形式返回。你可以按返回这些组合。candidates中的数字可以。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为target的不同组合数少于150个。[2,3,6,7],target =72 和 3 可以形成一组候选,2 + 2 + 3 = 7。注意 2 可以使用多次。7 也是一个候选, 7 = 7。仅有这两种组合。原创 2023-09-17 16:05:36 · 98 阅读 · 1 评论 -
37. 解数独
本题要求我们填数独,最重要的就是当我们填写某个位置的时候要知道她还能填几,要分情况,就类似于一棵树,所以我们采用dfs搜索的方式。首先定义三个bool数组row,col,cell来对应三个规则。先遍历整个表一次,根据表里面已经有数据的位置将对应的bool数组置为true,随后开始dfs。dfs部分是一个递归的函数,输入参数要包含对应的位置,函数的主要功能就是确定这个位置有没有符合规则的数填进去,没有则说明数独无解,否则就填入数据并更改对应的bool值。编写一个程序,通过填充空格来解决数独问题。原创 2023-09-12 12:45:11 · 55 阅读 · 0 评论 -
36. 有效的数独
请你判断一个9 x 9的数独是否有效。只需要,验证已经填入的数字是否有效即可。1-91-91-93x3'.'board =trueboard =false除了第一行的第一个数字从改为以外,空格内其他数字均与 示例1 相同。但由于位于左上角的 3x3 宫内有两个 8 存在, 因此这个数独是无效的。原创 2023-09-12 10:51:49 · 38 阅读 · 0 评论 -
34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)
给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1, -1]。你必须设计并实现时间复杂度为O(log n)的算法解决此问题。原创 2023-09-10 18:25:09 · 83 阅读 · 0 评论 -
31. 下一个排列 (字典序法)
对于本题来说,就是从右到左寻找第一个破坏升序的数nums[pos - 1], 然后在遍历过的数里寻找比该数大的最小的一个,所例如遍历过的数为[7,6,4,3], nums[pos - 1]为5, 则5需要与6进行交换, 那么这时候如何找到6呢?如果不存在下一个更大的排列,那么这个数组必须重排为字典序最小的排列(即,其元素按升序排列)。是指其整数的下一个字典序更大的排列。更正式地,如果数组的所有排列根据其字典顺序从小到大排列在一个容器中,那么数组的。刚学的组合数学知识正好用到,生成算法中的字典序法。原创 2023-09-09 16:25:34 · 73 阅读 · 0 评论 -
18. 四数之和(使用三数之和的思想)
给你一个由n个整数组成的数组nums,和一个目标值target。请你找出并返回满足下述全部条件且的四元组bcd你可以按返回答案。原创 2023-09-09 14:56:38 · 35 阅读 · 0 评论 -
15、三数之和---引申出2sum--100sum问题解法
3sum问题可以借助twosum问题来理解。三个数的和为0,我们可以首先确定一个数x,那剩下的两个数要做到与这个数的和为0,就转化为了twosum问题,即求两个数之和为-x就可以了。传入参数部分要改一改,多传入一个变量begin,令left从begin开始。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。这种方式在力扣竟然超时!注意,输出的顺序和三元组的顺序并不重要。答案中不可以包含重复的三元组。唯一可能的三元组和不为 0。唯一可能的三元组和为 0。,留作参考吧,后期再优化。原创 2023-09-07 18:07:05 · 29 阅读 · 0 评论