#Etc

leetcode 74. Search a 2D Matrix 、240. Search a 2D Matrix II

74.Searcha2DMatrix整个二维数组是有序排列的,可以把这个想象成一个有序的一维数组,然后用二分找中间值就好了。这个时候需要将全部的长度转换为相应的坐标,/col获得x坐标,%col获得y坐标classSolution{public:boolsearchMatrix(vector<vector<...

leetcode 704. Binary Search 、35. Search Insert Position 、278. First Bad Version

704.BinarySearch 1.使用start+1<end,这样保证最后剩两个数2.mid=start+(end-start)/2,这样避免接近max-int导致的溢出3.start、end直接等于mid4.最后比较两个位置classSolution{public:intsearch(vector...

leetcode 55. Jump Game、45. Jump Game II(贪心)

55. JumpGame第一种方法:只要找到一个方式可以到达,那当前位置就是可以到达的,所以可以breakclassSolution{public:boolcanJump(vector<int>&nums){intlength=nums.size();if(length<=0)ret...

leetcode 62. Unique Paths 、63. Unique Paths II

62.UniquePathsclassSolution{public:intuniquePaths(intm,intn){if(m<=0||n<=0)return0;vector<vector<int>>dp(m,vector<int>(n));dp[0][0]=1;fo...
代码星球 代码星球·2020-10-13

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 使用双端队列维护一个单调递减的队列。使用双端队列的原因是,当顶部元素不在这个窗口的时候,就需要弹出,并且是从前面弹出,保证插入的元素的顺序不变。单调递减是因为让双端队列的头部一直是当前窗口的最大值,只要这个最大值...
首页上一页...2930313233...下一页尾页