- 博客(10)
- 收藏
- 关注
原创 2020-09-01
思路分析每棵树的左子树和右子树相同递归条件同时为空,则相同,return true;一个为空 return false;此时比较结点值是否相同 && 根节点的左子树 根节点的右子树 && 根节点的右子树 根节点的左子树bool check(struct TreeNode* p,struct TreeNode* q){ if(!p && !q) return true; .
2020-09-01 19:23:15
127
原创 有序链表转换二叉搜索树(leetcode109)
高度平衡的二叉搜索树(又叫二叉排序树)左子树小于根节点,右子树大于根节点。左右两边高度差小于等于1每个节点都是一个二叉搜索树方法一:分治由于二叉搜索树的性质,再加上题目中所给的是一个排好顺序的数组,所以只需找到中位数,插入到根节点即可。再分别从中位数左右两边取中位数,分别插到上一个结点的左右子树上。我们取得区间为左闭右开区间!!代码:struct ListNode* getMidPoint(struct ListNode* left,struct ListNode* right).
2020-08-18 20:25:28
142
原创 leetcode 392 -判断子序列(方法一:双指针。方法二:动态规划(类似KMP))
方法一:直接双指针,简单粗暴。bool isSubsequence(char* s, char* t) { int n = strlen(s), m = strlen(t); int i = 0, j = 0; while (i < n && j < m) { if (s[i] == t[j]) { i++; } j++; } if(i == n) .
2020-07-27 17:17:15
326
原创 力扣:把数组排成最小的数,以字符串形式输出(排序)
先上源代码:int cmp(const void *a,const void *b){ char s1[100],s2[100]; sprintf(s1,"%d%d",*(int *)a,*(int *)b); sprintf(s2,"%d%d",*(int *)b,*(int *)a); return strcmp(s1,s2);}char* minNumber(int* nums, int numsSize){ if(!nums || numsSize.
2020-07-23 18:20:58
243
原创 LeetCode1329.将矩阵按对角线排序(冒泡排序)
运用冒泡排序:我们需要用到三个for循环第一个是次数第二个行第三个是列我们是斜着比较,即 a[i][j] 与 a[i+1][j+1]相比较对于次数来说,就是对角线最大元素个数-1即可,也等于行数-1;对于行数,我们是matSize - 1 - i,为什么是这样呢,因为我们每次都把最大的数字放在了最后边,即每排一次,即可减少一行。int** diagonalSort(int** mat, int matSize, int* matColSize, int* returnSize, in.
2020-07-21 13:47:13
446
原创 leetcode 167两数之和||--输入有序数组(方法一: 首尾双指针,方法二:二分查找)
先看一下这道题由题目知:此题的数组为有序数组。这道题较为简单,我们可以用两种方法。方法一:首尾“指针”法。我们用i,j分别指向首和尾,然后根据他们所代表的数的大小之和,改变i,和 j的位置代码如下:int* twoSum(int* numbers, int numbersSize, int target, int* returnSize){ int *ans = (int *)malloc(sizeof(int)*2); *returnSize = 2; m
2020-07-20 13:50:33
105
原创 LeetCode1305题:两颗二叉搜索树中的所有元素
先看一下题目,其实这道题还是挺简单的:1、首先,我觉得我们需要明白什么是二叉搜索树,就是对于每一颗结点来说,它的左子节点永远比他小,而右子节点永远比他大。2、其次二叉搜索树的一个性质是,它的中序遍历是一个有序数列。3、所以,我们可以先将两棵树中序遍历,得到两个有序数组,然后在运用归并排序,即可得到答案。源码:在这里插入代码片//中序遍历,目的:找出这个有序数列void InorderTravesal(struct TreeNode *root,int a[],int *s){ if
2020-07-19 14:05:01
102
原创 给自己道歉
前段时间由于自己的学业繁忙,好吧其实是因为懒惰,导致一直没能写博客,忘记了自己的初心。 希望从今天开始,我能够坚持学下去! 不忘初心,砥砺前行。
2020-07-19 13:50:53
97
原创 来自小白的内心自白
说明我开通这个账号的目的很明确,提升编程算法能力。都说一个人能否坚持下去的一个重要因素就是:是否能够在短期内获得满足感,玩游戏也是这个道理,所以我希望能够通过写文章来激励自己,获得满足感,坚持下去!...
2020-04-07 13:28:25
120
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人