#Leetcode

leetcode 131. Palindrome Partitioning 、132. Palindrome Partitioning II

131.PalindromePartitioning 一个字符串,通过不同的切分找到所有切分后的子字符串都是回文的可能性substr使用的是坐标值,不使用.begin()、.end()这种迭代器使用dfs,类似于subsets的题,每次判断要不要加入这个数start每次是起始的位置,判断当前位置到起始位置是不...

leetcode 127. Word Ladder、126. Word Ladder II

127.WordLadder这道题使用bfs来解决,每次将满足要求的变换单词加入队列中。wordSet用来记录当前词典中的单词,做一个单词变换生成一个新单词,都需要判断这个单词是否在词典中,不在词典中就不能加入队列。pathCnt用来记录遍历到的某一个词使用的次数,做一个单词变换生成一个新单词,都需要判断这个单词是否在...

leetcode 51. N-Queens 、52. N-Queens II

  51.N-Queens使用isValid判断当前的位置是否合法每次遍历一行,使用queenCol记录之前行的存储位置,一方面是用于判断合法,另一方面可以根据存储结果输出最终的结果棋盘的斜线都是45°的,所以两个位置x的差值和y的差值应该是相等的classSolution{public:vecto...
代码星球 ·2020-10-13

leetcode 77. Combinations

https://www.cnblogs.com/grandyang/p/4332522.html数字从1到n,生成所有具有k个的组合本质上跟subsets更像,因为回溯回来只能选下一个位置的数值,可选择的数值在减少,搜索树的形状与subsets更像。不同的是,不是所有的节点都是可行解了,而是第k层所有的节点。class...
代码星球 ·2020-10-13

leetcode 230. Kth Smallest Element in a BST

https://www.cnblogs.com/grandyang/p/4620012.html这个题其实就是中序遍历第k个数就好了,代码最好写的就是非递归的方式,在stack里面找第k个就好了。也可以使用递归的方式:classSolution{public:intkthSmallest(TreeNode*root,i...

leetcode701. Insert into a Binary Search Tree

 https://www.cnblogs.com/grandyang/p/9914546.html 类似于二分查找的方法,用迭代的方法去做注意:无论是进入左子树还是右子树,左右子树都变成了新的数,所以需要重新根据root->left=....来重新生成classSolution{public:...

leetcode 958. Check Completeness of a Binary Tree 判断是否是完全二叉树 、222. Count Complete Tree Nodes

完全二叉树的定义:若设二叉树的深度为h,除第h层外,其它各层(1~h-1)的结点数都达到最大个数,第h层所有的结点都连续集中在最左边,这就是完全二叉树。解题思路:将树按照层进行遍历,如果出现null后还出现非null则能证明这个不是完全二叉树https://leetcode.com/problems/check-com...

leetcode 110. Balanced Binary Tree

 classSolution{public:boolisBalanced(TreeNode*root){intdepth=0;returnBalanced(root,depth);}boolBalanced(TreeNode*root,int&depth){if(root==NULL){depth=0...

leetcode 104. Maximum Depth of Binary Tree 111. Minimum Depth of Binary Tree

104:classSolution{public:intmaxDepth(TreeNode*root){if(root==NULL)return0;intleft=maxDepth(root->left);intright=maxDepth(root->right);return(left>right...

leetcode 124. Binary Tree Maximum Path Sum 、543. Diameter of Binary Tree(直径)

124.BinaryTreeMaximumPathSumhttps://www.cnblogs.com/grandyang/p/4280120.html如果你要计算加上当前节点的最大path和,这个节点的左右子树必定是纯左右树(即没有拐点),用另一个参数保留整个二叉树的最大path和,然后计算每一个以当前节点为拐点的路...

leetcode 239. Sliding Window Maximum

https://www.cnblogs.com/grandyang/p/4656517.html 使用双端队列维护一个单调递减的队列。使用双端队列的原因是,当顶部元素不在这个窗口的时候,就需要弹出,并且是从前面弹出,保证插入的元素的顺序不变。单调递减是因为让双端队列的头部一直是当前窗口的最大值,只要这个最大值...

leetcode 112. Path Sum 、 113. Path Sum II 、437. Path Sum III

112.PathSum自己的一个错误写法:classSolution{public:boolhasPathSum(TreeNode*root,intsum){if(root==NULL)returnfalse;intvalue=0;returnhasPathSum(root,sum,value);}boolhasPat...
代码星球 ·2020-10-13

leetcode 207. Course Schedule 、 210. Course Schedule II 、 310. Minimum Height Trees

207.CourseSchedulehttps://blog.csdn.net/wongleetion/article/details/79433101问题的实质就是判断一个有向图是否有环,利用入度去解决这个问题使用bfs解决问题。初始化时,利用二维vector存储节点间的关系,并存储每个节点的入度,同时将入度为0的节...

leetcode 84. Largest Rectangle in Histogram 、85. Maximal Rectangle 、221. Maximal Square

84.LargestRectangleinHistogramhttps://www.cnblogs.com/grandyang/p/4322653.html整体思路是递增不处理,当遇到减少时,计算之前所有大于当前高度的最优解。因为实际上只要遇到比你小的,就不可能以你为高度了。索引之间的差刚好能反应当前栈中高度所覆盖的区...

leetcode 20. Valid Parentheses 、32. Longest Valid Parentheses 、301. Remove Invalid Parentheses

20.ValidParentheses 错误解法:"[])"就会报错,没考虑到出现')'、']'、'}'时,stack为空的情况,这种情况也无法匹配classSolution{public:boolisValid(strings){if(s.empty())returnfalse;stack<char&...
首页上一页...1920212223...下一页尾页