leetcode总结
文章平均质量分 64
leetcode解题方法、代码。
Durant_kevin
love opensource and data analysis^~^
展开
-
Binary Tree Inorder Traversal--leetcode
原题链接:https://oj.leetcode.com/problems/binary-tree-inorder-traversal/题目大意:中序遍历二叉树解题思路:中序遍历二叉树,中序遍历二叉树的左子树,访问根结点,中序遍历二叉树的右子树。非递归实现时,用一个栈模拟遍历过程即可。因为需要先遍历左子树,所以每个结点先入栈,出栈时访问。vector inorderTraversal(原创 2014-12-16 09:59:57 · 1116 阅读 · 0 评论 -
Binary Tree Postorder Traversal --leetcode
原题链接:https://oj.leetcode.com/problems/binary-tree-postorder-traversal/题目大意:后序遍历二叉树解题思路:后序遍历二叉树的步骤:后序遍历二叉树的左子树,后序遍历二叉树的右子树,访问根结点。非递归实现时,用一个栈模拟遍历过程。由于访问完左子树后访问右子树,栈中元素要起到转向访问其右子树的作用,但是不能像先序和中序遍历那样出栈原创 2014-12-16 10:10:12 · 1303 阅读 · 0 评论 -
Find Peak Element --leetcode
原题链接:https://oj.leetcode.com/problems/find-peak-element/题目大意:给定一个相邻元素不相等的数组,找出其中的一个局部最大值,返回对应下标。方法1:顺序遍历。本题的一个重要特点是,从第一个元素开始,若其大于相邻的后续元素,则第一个元素就是一个局部最大值,返回即可。若其小于相邻的后续元素,则第二个元素大于第一个元素。如此,一一遍历数组,原创 2014-12-15 14:25:39 · 12418 阅读 · 0 评论 -
Intersection of Two Linked Lists--leetcode
原题链接:https://oj.leetcode.com/problems/intersection-of-two-linked-lists/题目大意:给定两个单链表,若相交则找出第一个交点。解题思路:如果两个无环单链表相交,则必定尾部结点为同一个结点。设定两个指针,若从两个链表的表头同时遍历,很明显不能找到交点。但若将较长的链表截去长出来的一部分,然后两个指针同时遍历,则第一次两个指针相原创 2014-12-01 18:58:57 · 2701 阅读 · 2 评论 -
Binary Tree Preorder Traversal--leetcode
原题链接:https://oj.leetcode.com/problems/binary-tree-preorder-traversal/题目大意:先序遍历二叉树思路:该算法属于基础算法,需要掌握其递归和非递归实现。面试时,要做到一次bug-free。递归思路和实现很简单,这里就不说了,下面主要介绍先序遍历的非递归实现算法。我们用一个栈来模拟递归过程,若结点不空,则访问并入栈;若节点为原创 2014-11-16 15:20:00 · 1089 阅读 · 0 评论 -
LRU Cache--leetcode
原题链接:https://oj.leetcode.com/problems/lru-cache/题目大意:设计操作系统中资源管理算法所使用的一种数据结构,即LRU算法。是一道偏向于综合的题。方法:一个哈希表+一个双端链表思路:一方面LRU Cache算法要求可以快速访问结点,所以我们很容易想到使用哈希表或者数组。另一方面,该算法要求在达到容量上限时,删除最久未访问的数据结点。这要求所设原创 2014-11-16 14:20:00 · 1212 阅读 · 0 评论 -
Insertion Sort List--leetcode
原题链接:https://oj.leetcode.com/problems/insertion-sort-list/题目大意:对单链表进行插入排序思路:同插入排序算法。遍历链表,设置两个指针,*pre和*p,p用于遍历,pre用于记录带插入位置的结点。每次要插入一个基点时,都从第一个结点开始遍历,找到要插入位置的前一个基点,然后插入该结点即可。有一个技巧给大家分享一下,加一个头结点,这样就原创 2014-11-15 16:01:13 · 818 阅读 · 0 评论 -
Sort List --leetcode
原题链接:https://oj.leetcode.com/problems/sort-list/题目大意:对链表进行排序,要求时间复杂度为O(NlgN) ,常量空间解题方法:二路归并排序思路:可以求出链表长度,然后找到中间节点,将链表分为两个链表,对两个链表分别进行排序,然后合并两个拍好序的链表。和数组的二路归并排序相似。class Solution {public:原创 2014-11-15 15:25:31 · 901 阅读 · 0 评论 -
Evaluate Reverse Polish Notation --leetcode
原题链接:https://oj.leetcode.com/problems/evaluate-reverse-polish-notation/题目大意:给出逆波兰式,然后求其结果。解题方法:单个栈思路:遍历逆波兰式,若为数字,则入栈;若为操作符,则弹出栈顶的2个元素,然后将其对应该操作符的结果入栈。遍历完成后,栈中元素就是所求结果。时间复杂度:O(N) 空间复杂度 : O(1)原创 2014-11-15 15:18:02 · 1062 阅读 · 0 评论 -
Reverse Words in a String --leetcode
原题链接:https://oj.leetcode.com/problems/reverse-words-in-a-string/题目大意:以单词为单位翻转整个字符串,如“I am a coder",翻转后为"coder a am I”阶梯方法:两reverse思路:进行2次reverse,第一次翻转整个字符串,第二次翻转单个单词。如“I am a coder",第一次翻转后为”redo原创 2014-11-15 14:55:15 · 1042 阅读 · 0 评论 -
Maximum Product Subarray--leetcode
原题链接:https://oj.leetcode.com/problems/maximum-product-subarray/题目大意:求一个序列的最长原创 2014-11-13 16:17:52 · 926 阅读 · 0 评论 -
Maximum Subarray --leetcode
原题链接:https://oj.leetcode.com/problems/maximum-subarray/原创 2014-11-13 15:55:03 · 907 阅读 · 0 评论 -
leetcode--Find Minimum in Rotated Sorted Array II
原题链接:https://oj.leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/题的大意是,将一个有序数组(可以有重复元素)旋转,然后找出最小值。如,[0,1,2,3,3,3,3,3,3,3,3,4,5,6],旋转后变为S=[3,3,4,5,6,0,1,2,3,3,3,3,3,3].从中找出最小值。解题思路:改进折原创 2014-11-12 22:15:40 · 787 阅读 · 0 评论 -
leetcode--Find Minimum in Rotated Sorted Array
原题链接:https://oj.leetcode.com/problems/find-minimum-in-rotated-sorted-array/题的大意是,将一个有序数组(无重复元素)旋转,然后找出最小值。如,[0,1,2,3,4,5,6],旋转后变为S=[4,5,6,0,1,2,3].从中找出最小值。解题思路:改进折半查找算法。如图1,从数组的曲线上可以看出:若S[mid]>S原创 2014-11-12 21:56:36 · 770 阅读 · 0 评论 -
leetcode--Min Stack
leetcode--Min Stack C++/Java原创 2014-11-12 16:26:38 · 2868 阅读 · 0 评论