31、下一个排列
偷个懒,直接使用库函数next_permutation
。
1 | class Solution { |
32、最长有效括号
用栈进行括号匹配消除,在消除过程中记录最大长度值。
1 | class Solution { |
33、搜索旋转排序数组
变形的二分搜索,关键点一:判断mid
到底位于数组的前半段还是后半段;关键点二:判断下一步的搜索方向。
1 | class Solution { |
34、在排序数组中查找元素的第一个和最后一个位置
使用模板库里的二分查找函数,lower_bound
查找第一个大于或等于某个元素的位置,upper_bound
查找第一个大于某个元素的位置。
1 | class Solution { |
35、搜索插入位置
同样偷懒使用库提供的二分查找函数lower_bound
。
1 | class Solution { |
36、有效的数独
搞个book
数组记录,然后直接暴力循环判断就行了。
1 | class Solution { |
37、解数独
深搜入门题,注意期间的剪枝操作。
1 | class Solution { |
38、报数
模拟题
1 | class Solution { |
39、组合总和
深搜入门题,注意期间的剪枝操作。
1 | class Solution { |
40、组合总和 II
在39
题的基础上稍微改一下即可,一是13
行的禁止元素重复使用,二是15
行的去重操作。
1 | class Solution { |