LeetCode
冷小河
已识乾坤大,犹怜草木青
展开
-
leetcode第一题
某天看到了刷题神器LeetCode,简单研究了一下怎么使用的,并刷了第一道题。把自己的答案写下来。class Solution{public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> v_out; map<in...原创 2018-05-02 17:29:51 · 173 阅读 · 0 评论 -
【LeetCode】二叉树层次遍历 (一次让人疯掉的超低级bug)
我对递归的思想有点犯怵,递归这个东西确实需要天赋和训练。所以二叉树遍历我首先掌握的是迭代方法。层次遍历的基本思路是,因为要从上到下,从左到右进行遍历,我们进行碰到数据的过程和要处理的过程方向是一致的,所以最好使用队列queue数据结构:在while循环中,每处理一个数据,一次把它的左子节点(如果有的话)和右子节点(如果有的话)入队,直到队列变空。LeetCode上这一题,不仅要按正确的方式(层次遍...原创 2018-05-10 15:36:22 · 1868 阅读 · 0 评论 -
leetcode题目 字符串最大公共前缀
在做leetcode字符串最大公共前缀的时候,整体思路可能不是很优秀,但是正确的,但提交了好多次,其中最重要的原因是没有处理退化的情况;第二个原因就是在少分析了else的情况,详细信息见代码。class Solution {public: string longestCommonPrefix(vector<string>& strs) { ...原创 2018-05-05 17:55:25 · 456 阅读 · 1 评论 -
【leetcode】比较顺利的完成了链表的一道题——链表去重leetcode83,对代码做一个记录
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* d...原创 2018-05-12 12:46:42 · 443 阅读 · 0 评论 -
leetcode 移除元素
我在做这一题的时候用到了STL种find函数以及vector的erase函数,虽然空间复杂度满足要求,但是时间复杂度却不够优秀。代码如下,class Solution {public: int removeElement(vector<int>& nums, int val) { //先处理退化的情况 int N = nums...原创 2018-05-06 02:03:34 · 241 阅读 · 0 评论 -
再次拾起链表--图解基本操作之链表迭代反转
上大学的时候链表学习的就不好,在刷LeetCode的时候链表题目还挺多,实际上面试过程链表也是必考的。因此简单总结了链表基本操作——反转的迭代式方法;递归式反转暂未研究。迭代式方法,除了表示链表头的head之外,还要有两个指针,cur和pre表示当前处理节点和当前处理节点的前一个节点。实际上如果从头迭代,一直是原来的第一个节点。核心代码如下:ListNode* reverseList(ListNo...原创 2018-05-08 13:57:28 · 426 阅读 · 0 评论 -
【leetcode】110 判断一棵二叉树是否平衡二叉树
在不熟悉递归的情况下,用了两次递归来完成该题,做一纪念{//解决过程两次用到递归,完美、快速地解决了这道题;首先一个求高度的函数这个函数要用到递归;之后在主函数里面,比较两个子树的高度差,如果二者平衡,也要继续分别递归二者;public: bool isBalanced(TreeNode* root) { if (root == NULL) ...原创 2018-05-16 00:55:47 · 299 阅读 · 0 评论 -
【leetcode】 110判断平衡二叉树
在不熟悉递归的情况下,用了两次递归完成了这道题。以作纪念。class Solution{//解决过程两次用到递归,完美、快速地解决了这道题;首先一个求高度的函数这个函数要用到递归;之后在主函数里面,比较两个子树的高度差,如果二者平衡,也要继续分别递归二者;public: bool isBalanced(TreeNode* root) { if (root =...原创 2018-05-16 01:02:41 · 382 阅读 · 0 评论 -
【LeetCode 55】 跳跃游戏 两种方法
我自己解了一个方法,又借鉴网上的贪心算法又写了一遍代码。如下。第一个是贪心算法,遍历元素,维护的指标为当前能够达到的最大值,该最大值是比较上一循环的最大值和当前做运算的结果进行比较得来的。这个方法是网上最常用的方法。相关注意事项见代码注释。// 第三遍提交:看网上的贪心算法,自己也写了一个// 最后在做一些说明。这里应用贪心算法,,第一,一定遍历所有元素,而不是跳跃。第二注意maxreach的更...原创 2018-05-24 16:07:21 · 9604 阅读 · 0 评论