Leetcode
Miss_zhuo_
好好码哦
展开
-
Leetcode 135 分发糖果
class Solution {public:int candy(vector<int>& ratings) { int num = ratings.size(); int sum = 0; vector<int> c; //c存取每个位置应该分发的糖果数 int k,temp ; if (num == 0) return 0; if (num =...原创 2019-03-05 08:18:36 · 226 阅读 · 0 评论 -
Leetcode312 戳气球
算法:动态规划(待更新)class Solution { private: vector<vector<int>> dp; int helper(vector<int>& nums,int i,int j) { if(i>j) return 0; if(dp[i][j]&g...原创 2019-03-12 18:22:19 · 336 阅读 · 0 评论 -
Leetcode 430 扁平化多级双向链表
对深度优先遍历的理解:用栈保存我进行这一步就会丢掉的前一步状态。比如,这里栈保留了双向节点的next指针。使得其next变child之后还能找到原来的next。再比如,背包问题,栈里保留了如果不加入这个物品时的状态。然后后分别进行:加入,还原,加入其它,深入(即出栈或递归)。Node *flatten(Node *head) { Node *it = head; sta...原创 2019-03-16 11:04:19 · 367 阅读 · 0 评论 -
Leetcode 173 二叉搜索树迭代器
解答一:二叉搜索树很重要的特性:中序遍历是有序数列。故可以将中序遍历存放在vector中,每次只要判断后面还是否有数则可得hasnext和next代码:class BSTIterator {public: BSTIterator(TreeNode* root) { idx_ = 0;//数组始 inOrder(root); ...原创 2019-03-16 09:28:25 · 243 阅读 · 0 评论 -
Leecode 103 二叉树的锯齿形层次遍历
讲下思路:*非递归**,双栈利用栈1s1储存奇数层的点,s2储存偶数层的点,所以根结点就储存在s2里; 当前层为偶数层时,说明此时s1是空的,为了让下一层结点从s1出来的时候从右到左,所以让左结点先进栈,毕竟先进后出嘛; 当前层为奇数层时,说明此时s2是空的,且s1结点出来时从右到左,为了让下一层结点从s2出来的时候从左到右,所以让右结点先进栈,先进后出; 记得每次层数+1,将本层结点用...原创 2019-03-15 10:48:36 · 323 阅读 · 0 评论 -
Leetcode 207 课程表
思路:拓扑排序,判断无环1.建立二维数组record[ ][ ] ,记录每个顶点的相邻点2.Hash[ ]记录每个顶点的入度3.将入度=0的点进栈4.每次出栈一个点x,把record[x]行所有点的入度-1,产生入度=0的点则进栈5.重复4直至栈为空6.遍历Hash[ ],若每个元素都是0,则无环,否则有环。tip:因为要自己建模,所以建立二维数组记录比较方便(这里在邻...原创 2019-03-14 13:02:41 · 206 阅读 · 0 评论 -
Leetcode 141重排链表
第一种思路:(时间:144ms 内存:12MB) 1.指针找到中点 2.拆成两个链表 ,拆成前后两条链line1,line2。逆置line2. 3.遍历两个链表,后面的塞到前面的“缝隙里”。节点为偶数时:size(line1)=size(line2)节点为奇数时:size(line1)=size(line2)+1...原创 2019-03-14 11:16:43 · 160 阅读 · 0 评论 -
Leetcode113 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */cla...原创 2019-03-04 11:07:02 · 2471 阅读 · 0 评论 -
Leetcode 106 根据一棵树的中序遍历与后序遍历构造二叉树
根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder =[9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树: 3 / \ 9 20 / \ 15 7/** * Definition for a binary tr...原创 2019-03-05 09:09:59 · 912 阅读 · 0 评论 -
Leetcode 17 电话号码的字母组合 &22 括号生成
思路:用队列,相当于树的层次遍历17.电话号码的字母组合{a,b,c}a出队列,ad,ae,af如、入队列{b,c,ad,ae,af}以此类推循环退出条件:电话数字遍历完毕答案:当前在队列中的所有字符串class Solution {private: string map[10] = { "","","abc","def","ghi","jkl",&quo原创 2019-03-13 12:24:08 · 266 阅读 · 0 评论