
leetcode
文章平均质量分 65
Durant_kevin
love opensource and data analysis^~^
展开
-
leetcode:Insert Sort List
问题描述对一个单链表进行插入排序,head指向第一个结点。代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */原创 2014-05-18 10:34:20 · 1452 阅读 · 0 评论 -
Binary Tree Preorder Traversal--leetcode
原题链接:https://oj.leetcode.com/problems/binary-tree-preorder-traversal/题目大意:先序遍历二叉树思路:该算法属于基础算法,需要掌握其递归和非递归实现。面试时,要做到一次bug-free。递归思路和实现很简单,这里就不说了,下面主要介绍先序遍历的非递归实现算法。我们用一个栈来模拟递归过程,若结点不空,则访问并入栈;若节点为原创 2014-11-16 15:20:00 · 1125 阅读 · 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 · 1075 阅读 · 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 · 1098 阅读 · 0 评论 -
Sort List --leetcode
原题链接:https://oj.leetcode.com/problems/sort-list/题目大意:对链表进行排序,要求时间复杂度为O(NlgN) ,常量空间解题方法:二路归并排序思路:可以求出链表长度,然后找到中间节点,将链表分为两个链表,对两个链表分别进行排序,然后合并两个拍好序的链表。和数组的二路归并排序相似。class Solution {public:原创 2014-11-15 15:25:31 · 935 阅读 · 0 评论 -
Insertion Sort List--leetcode
原题链接:https://oj.leetcode.com/problems/insertion-sort-list/题目大意:对单链表进行插入排序思路:同插入排序算法。遍历链表,设置两个指针,*pre和*p,p用于遍历,pre用于记录带插入位置的结点。每次要插入一个基点时,都从第一个结点开始遍历,找到要插入位置的前一个基点,然后插入该结点即可。有一个技巧给大家分享一下,加一个头结点,这样就原创 2014-11-15 16:01:13 · 844 阅读 · 0 评论 -
Binary Tree Postorder Traversal --leetcode
原题链接:https://oj.leetcode.com/problems/binary-tree-postorder-traversal/题目大意:后序遍历二叉树解题思路:后序遍历二叉树的步骤:后序遍历二叉树的左子树,后序遍历二叉树的右子树,访问根结点。非递归实现时,用一个栈模拟遍历过程。由于访问完左子树后访问右子树,栈中元素要起到转向访问其右子树的作用,但是不能像先序和中序遍历那样出栈原创 2014-12-16 10:10:12 · 1365 阅读 · 0 评论 -
Intersection of Two Linked Lists--leetcode
原题链接:https://oj.leetcode.com/problems/intersection-of-two-linked-lists/题目大意:给定两个单链表,若相交则找出第一个交点。解题思路:如果两个无环单链表相交,则必定尾部结点为同一个结点。设定两个指针,若从两个链表的表头同时遍历,很明显不能找到交点。但若将较长的链表截去长出来的一部分,然后两个指针同时遍历,则第一次两个指针相原创 2014-12-01 18:58:57 · 2733 阅读 · 2 评论 -
Find Peak Element --leetcode
原题链接:https://oj.leetcode.com/problems/find-peak-element/题目大意:给定一个相邻元素不相等的数组,找出其中的一个局部最大值,返回对应下标。方法1:顺序遍历。本题的一个重要特点是,从第一个元素开始,若其大于相邻的后续元素,则第一个元素就是一个局部最大值,返回即可。若其小于相邻的后续元素,则第二个元素大于第一个元素。如此,一一遍历数组,原创 2014-12-15 14:25:39 · 12485 阅读 · 0 评论 -
LRU Cache--leetcode
原题链接:https://oj.leetcode.com/problems/lru-cache/题目大意:设计操作系统中资源管理算法所使用的一种数据结构,即LRU算法。是一道偏向于综合的题。方法:一个哈希表+一个双端链表思路:一方面LRU Cache算法要求可以快速访问结点,所以我们很容易想到使用哈希表或者数组。另一方面,该算法要求在达到容量上限时,删除最久未访问的数据结点。这要求所设原创 2014-11-16 14:20:00 · 1268 阅读 · 0 评论 -
Maximum Product Subarray--leetcode
原题链接:https://oj.leetcode.com/problems/maximum-product-subarray/题目大意:求一个序列的最长原创 2014-11-13 16:17:52 · 964 阅读 · 0 评论 -
1+2+3+...+n不能用while、for、if else等实现
问题描述求 1+2+ … +n ,要求不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句。实际意义不大,题目涉及的知识还是不错的!方法1用构造函数求解。#include using namespace std; class Plus { public: Plu原创 2014-06-02 10:12:03 · 3323 阅读 · 2 评论 -
不用加减乘除做加法
问题描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。算法描述从二进制运算入手,1.a^b求出各bit的和,2.a&b求出需要进位的bits,34.重复1、2、3直至a&b==0(即进位为0),得到结果。代码int add(int num1,int num2){ if(num2==0) retu原创 2014-06-02 10:57:09 · 1402 阅读 · 0 评论 -
leetcode:Reorder List
问题Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→…You must do this in-place without altering the nodes' values.For example,Given {1,2,3,4}, reorde原创 2014-05-18 23:56:55 · 857 阅读 · 0 评论 -
leetcode:String to Integer (atoi)
问题输入:一个表示数字的字符串,需要考虑不同的输入形式。输出:对应的整数特殊输入形式:1.输入开始几个字符为空格2.考虑正负号3.数字字符不属于[0,9]时,输出当前结果4.字符串代表的数字大于INT_MAX或者小于INT_MIN时输出INT_MAX或者INT_MIN。class Solution {// out of range原创 2014-05-30 12:36:13 · 1222 阅读 · 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 · 800 阅读 · 0 评论 -
leetcode--Min Stack
leetcode--Min Stack C++/Java原创 2014-11-12 16:26:38 · 2900 阅读 · 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 · 814 阅读 · 0 评论 -
Maximum Subarray --leetcode
原题链接:https://oj.leetcode.com/problems/maximum-subarray/原创 2014-11-13 15:55:03 · 945 阅读 · 0 评论 -
Binary Tree Inorder Traversal--leetcode
原题链接:https://oj.leetcode.com/problems/binary-tree-inorder-traversal/题目大意:中序遍历二叉树解题思路:中序遍历二叉树,中序遍历二叉树的左子树,访问根结点,中序遍历二叉树的右子树。非递归实现时,用一个栈模拟遍历过程即可。因为需要先遍历左子树,所以每个结点先入栈,出栈时访问。vector inorderTraversal(原创 2014-12-16 09:59:57 · 1160 阅读 · 0 评论