leetcode
drawAgirl
这个作者很懒,什么都没留下…
展开
-
leetcode 旋转链表
具体思路就是先遍历链表求出长度,然后对k取余。通过3个指针实现旋转链表/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* rotateRight(struct ListNod...原创 2018-12-13 15:35:24 · 176 阅读 · 0 评论 -
leetcode Sort List
没想到什么好办法,要将O(ologn)时间里完成,我先遍历一遍将链表存储到数组里,再对数组进行排序,排序方法写了快排和归并的,过是能过,但是时间要140ms,最快的就是直接对链表进行归并排序,第一次写比较难受,用快慢指针来分成两个链表,具体思想还是和数组的归并排序一样。/** * Definition for singly-linked list. * struct ListNode {...原创 2018-12-17 15:40:19 · 172 阅读 · 1 评论 -
leetcode Remove Duplicates from Sorted List II
我的做法比较差吧,用了4个指针,分了好几个情况,还是太菜了。具体做法就是先存储当前结点的值和后面的进行比较,直到next到不同的值,再对current的val值更新成next的val值,有几个特殊的点想了比较久,就变成下面判断比较复杂的情况。。。/** * Definition for singly-linked list. * struct ListNode { * int ...原创 2018-12-17 15:12:09 · 118 阅读 · 0 评论 -
leetcode 有序链表转换二叉搜索树
一个思路是先转成数组,还有就是用快慢指针确定链表的中点,还是二分的思想,递归,代码写得很烂好吧/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} ...原创 2018-12-27 15:05:59 · 173 阅读 · 0 评论 -
leetcode 存在重复
bool containsDuplicate(int* nums, int numsSize) { if(numsSize == 0 || numsSize == 1) return false; int temp[numsSize]; temp[0] = nums[0]; int count = 1; for(int i=1;i<n...原创 2018-12-15 14:23:45 · 246 阅读 · 0 评论 -
leetcode 旋转数组
题目说到要用3种以上方法,又有一个要求是O(1)空间复杂度,有一种要用原地算法了,稍微复杂一点这里第一个是构造辅助数组void rotate(int* nums, int numsSize, int k) { k = k % numsSize; if(!k) return; int temp[numsSize]; int index = 0...原创 2018-12-15 13:51:26 · 171 阅读 · 0 评论 -
leetcode 从排序数组中删除重复项
原地算法int removeDuplicates(int* nums, int numsSize) { // if(numsSize == 1) // return 1; if(numsSize == 0) return 0; int index = 0; for(int i=1;i<numsSize;i++){ ...原创 2018-12-15 13:23:58 · 123 阅读 · 0 评论 -
leetcode Minimum Distance Between BST Nodes
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */void help(struct TreeNode* root,int *pre,int *re...原创 2018-12-14 23:57:46 · 181 阅读 · 0 评论 -
leetcode Validate Binary Search Tree 验证二叉搜索树
自己第一次想用递归写,但这里很容易错误,因为每次都只是判断当前子树和父结点值大小关系,容易忽略根结点值的大小,就换了c++用中序遍历每次把值放进vector 但这个解法有点垃圾,就去论坛看了别人的代码,学到了很多,第一个代码O(n)的复杂度,left其实就是最小值,right是最大值。/** * Definition for a binary tree node. * struct Tr...原创 2018-12-14 23:14:10 · 164 阅读 · 0 评论 -
leetcode nvert Binary Tree 翻转二叉树
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */struct TreeNode* invertTree(struct TreeNode* root...原创 2018-12-13 18:49:51 · 156 阅读 · 0 评论 -
leetcode Maximum Depth of N-ary Tree
/*// Definition for a Node.class Node {public: int val; vector<Node*> children; Node() {} Node(int _val, vector<Node*> _children) { val = _val; childr...原创 2018-12-13 16:23:32 · 142 阅读 · 0 评论 -
leetcode 104. Maximum Depth of Binary Tree 二叉树的深度
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */int maxDepth(struct TreeNode* root) { if(!roo...原创 2018-12-13 16:12:47 · 152 阅读 · 0 评论 -
leetcode 100. Same Tree 相同的树
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */bool isSameTree(struct TreeNode* p, struct TreeNo...原创 2018-12-13 16:03:56 · 145 阅读 · 0 评论 -
leetcode Symmetric Tree 对称二叉树
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */bool judge(struct TreeNode *left,struct TreeN...原创 2018-12-13 15:51:17 · 142 阅读 · 0 评论 -
Leetcoe 863. All Nodes Distance K in Binary Tree
dfs和bfs版本,不过我是先转化成图的,以为效率会低很多,没想到还打败了90多的人/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(...原创 2019-01-06 18:46:35 · 156 阅读 · 0 评论