自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 leetcode 64 最小路径和

动态规划,从右下角算到左上角。class Solution {public: int minPathSum(vector<vector<int>>& grid) { int h = grid.size(), w = grid[0].size(); if(h == 0 && w == 0) return ...

2019-10-09 14:16:16 90

原创 leetcode 39 组合总和

回溯法按照自己总结的标准模版想出来的。 时间击败91%需要注意的点:1)传引用,不然修改是无效的2)for循环跳出是要continue而不是break,不然target=7, candidates=[8,6,3,4]这种时候就会被前面的8直接卡住跳出来,找不到后面的3,4了3)dfs递归的时候需要传i而不是i+1,因为一个数字可以取多次class Solution ...

2019-10-08 21:30:45 81

原创 leetcode 22 括号生成

回溯法,这里注意1)string 是可以直接用+号在后面拼接字符的;2)回溯法的参数(结果,当前序列,序列size,start, end);3)先写递归结束条件,再写递归,注意push之后要有pop相对应。class Solution {public: vector<string> generateParenthesis(int n) { v...

2019-10-03 18:40:51 90

原创 leetcode 31 下一个排列

注意字典序最大,就是下一个排序,是全部比当前排序大排序中的最小的情况。因此首先找到第一个反序的位置,之后找到次大数和它交换,再把后面全部数字reverse即可。class Solution {public: void nextPermutation(vector<int>& nums) { if(nums.size() == 0) retur...

2019-10-03 18:13:00 50

原创 leetcode 198 打家劫舍

动态规划入门问题。tips:初始状态设f(-1) = f(0) = 0,简化运算。class Solution {public: int rob(vector<int>& nums) { int sz = nums.size(); int res = 0; if(sz == 0) return 0; ...

2019-10-03 09:46:04 86

原创 leetcode 141 环形链表

快慢指针典型问题,但我一开始总是报错:Line 18: Char 26: runtime error: member access within null pointer of type 'struct ListNode' (solution.cpp)但我一直在移动指针之前判断是否非空,不知道为什么会出现这种问题。后来发现是这个句子if(p2->next->nex...

2019-10-03 09:14:48 194

原创 leetcode 70 爬楼梯

可以发现这是一个斐波那契数列问题,一开始用递归超出时间限制,想起dp。但是看评论想起来只需要前两项即可,即设置两个int缓存一下就可以。class Solution {public: int climbStairs(int n) { if(n == 0) return 0; if(n == 1) return 1; if(n ==...

2019-10-02 20:57:30 58 1

原创 leetcode 53 最大子序和

这道题很典型,第一时间想到动态规划。但题目中说可以用更加巧妙的分治法,于是用此法实现了下。一开始看到java的代码,但用c++写到一般发现把半个数组当作参数传有点费事,于是修改了参数,重新写了help函数辅助。后来数组就一直越界,肯定是边界条件没有处理干净。后总结了一套边界处理但方法,以后可以沿用。在对数组做划分的时候,参数(a,b)全部为下标,即b为sz-1。中间两个值l=(a...

2019-10-02 16:29:47 146

原创 leetcode 101 对称二叉树

看到题目第一时间想到递归,但苦于在一棵树上怎样实现左右子树但比较。后来看了官方题解,发现使用两个参数,相当于独立比较两棵树,实现起来也很简洁。链接https://leetcode-cn.com/problems/symmetric-tree/solution/dui-cheng-er-cha-shu-by-leetcode//** * Definition for a binar...

2019-10-02 15:03:25 44

原创 leetcode 160 相交链表

一开始但想法是1)先用两个指针从头到尾遍历两个链表,记录下两个链表但长度m,n。2)两个指针从头开始,让长链表中的指针先走m-n步,然后两个指针一起走,遇到相同的时候就是相交节点。后来看了官方题解第三种方法,也是两个指针,觉得很有趣就实现了这个方法。遇到的问题:一开始设置了一个ListNode* res, 没有赋值,在找不到相交节点的时候默认返回res。本以为会返回空节点,跑样例的...

2019-10-02 14:45:56 67

原创 LeetCode 155 最小栈

主要参考:https://blog.csdn.net/SoulOH/article/details/812680641.用两个栈实现2.用一个栈实现,遇到最小值改变的情况需要push或者pop两次。但在实现过程中,push操作一开始我使用了<而不是<=,wa了。原因:等号情况下最小值虽然不会改变,但因为pop操作默认在遇到最小值情况下会弹出两次,如果之前之push了...

2019-10-02 14:08:19 61

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除