
力扣
ypw44
成为自己最想成为的人~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LCP 22. 黑白方格画(枚举+组合数)
思路:枚举+组合数 class Solution { public: int paintingPlan(int n, int k) { if(n*n == k) return 1; int res = 0; for(int i = 0 ; i < n ; i++){ for(int j = 0 ; j < n ; j++){ if(i * n + j * n - i * j ==.原创 2021-04-23 11:36:31 · 141 阅读 · 0 评论 -
101. 对称二叉树
思路:根结点不用管,肯定对称,然后递归处理左子树,右子树即可。 class Solution { public: bool isSymmetric(TreeNode* root) { return ismirror(root,root); } bool ismirror(TreeNode* p,TreeNode* q){ if(!p&&!q)//都为NULL return true; .原创 2021-04-20 13:51:01 · 126 阅读 · 0 评论 -
100. 相同的树
思路:一开始拿到二叉树的题目就很害怕,但是二叉树是具有相同的子结构的,这说明什么,我们可以利用递归来解决这个题目。 着眼于当前,如果当前的结点(其实可看做一个个根结点),如果都指向NULL , 那么递归到这一步的时候说明前面的结点都完全相同,这个时候直接返回true。如果一个 一个为空一个不为空,说明不相同,返回false。当前两棵二叉树的根结点不相等,也返回false。 否则就递归左子树 && 右子树(因为必须结构数值都完全喜相同) /** * Definition for a bin.原创 2021-04-19 16:08:03 · 94 阅读 · 0 评论 -
83. 删除排序链表中的重复元素
存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。返回同样按升序排列的结果链表。 思路:最直接的思路的话,因为链表是按照顺序排列的,所以我们可以依次比较相邻的两个元素的值。相等的话就可以跳过一个元素,把下一指针结点直接指向下下个元素。依次直至链表为空。 需要引入一个辅助的指针。 /** * Definition for singly-linked list. * struct ListNode { * int val; *原创 2021-04-19 15:06:30 · 124 阅读 · 0 评论 -
2. 两数相加(力扣)
参考官方题解 //题意:给两个链表,每个链表表示的是倒序输入的两个数,例如[1,2,3] [1,2,3]。然后要求求出 //两个链表的和并且以链表的方式返回。例如[2,4,6];表示123 + 123 = 246; //思路:跟归并排序的思路一致,依次将对应位置的数字相加,然后注意进位。直到一个链表的元素循环完毕, //然后就将后面的都加到新的链表的尾部就行了。 /** * Definition for singly-linked list. * struct ListNode { *原创 2021-04-16 16:22:00 · 177 阅读 · 0 评论