算法
文章平均质量分 72
xiao囡囡
偶是一枚菜鸟女码农
展开
-
leetcode -day31 Subsets I II
1、SubsetsGiven a set of distinct integers, S, return all possible subsets.Note:Elements in a subset must be in non-descending order.The solution set must not contain duplicate subset原创 2014-06-18 17:17:44 · 1487 阅读 · 0 评论 -
leetcode day2 -- Sort List && Insertion Sort List
1、Sort ListSort a linked list in O(n log n) time using constant space complexity.分析:对链表排序不是第一次见,但是这是对非排序链表,看复杂度O(nlgn),想到归并、快排、堆排等,但是对于链表不能随机存取,快排不适合。想到用归并的方法来实现,可以通过两个指针遍历求中点,将链表分成两端,分别排序,再原创 2014-04-25 15:10:33 · 1024 阅读 · 0 评论 -
leetcode -day19 Convert Sorted List to Binary Search Tree
1、Convert Sorted List to Binary Search Tree Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.分析:将一个升序排列的链表转换为平衡二叉搜索树,采用递归的方式,先找到链表原创 2014-05-19 13:22:03 · 1463 阅读 · 3 评论 -
leetcode day3 -- LRU Cache
1、LRU Cache Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and set.get(key) - Get the value (will always be posi原创 2014-04-26 21:59:46 · 1029 阅读 · 0 评论 -
leetcode day4 -- Binary Tree Postorder(Preorder) Traversal && Edit Distance
1、Binary Tree Postorder Traversal Given a binary tree, return the postorder traversal of its nodes' values.For example:Given binary tree {1,#,2,3}, 1 \ 2 / 3retu原创 2014-04-27 10:56:07 · 1118 阅读 · 0 评论 -
leetcode -day13 Valid Palindrome & Triangle & Pascal's Triangle I II
1、Valid PalindromeGiven a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.For example,"A man, a plan, a canal: Panama" is a palindrom原创 2014-05-12 10:59:50 · 1041 阅读 · 0 评论 -
leetcode --day12 Surrounded Regions & Sum Root to Leaf Numbers & Longest Consecutive Sequence
1、Surrounded RegionsGiven a 2D board containing 'X' and 'O', capture all regions surrounded by 'X'.A region is captured by flipping all 'O's into 'X's in that surrounded region.For e原创 2014-05-11 17:08:26 · 1058 阅读 · 0 评论 -
leetcode -day18 Balanced Binary Tree
1、Balanced Binary TreeGiven a binary tree, determine if it is height-balanced.For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subt原创 2014-05-18 21:39:15 · 1204 阅读 · 0 评论 -
面试题整理19 矩阵Z字形扫描
题目: 矩阵Z字形扫描对于原创 2014-05-17 09:35:00 · 3386 阅读 · 0 评论 -
leetcode -day17 Path Sum I II & Flatten Binary Tree to Linked List & Minimum Depth of Binary Tree
1、Path SumGiven a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.For example:Given the below原创 2014-05-17 09:33:25 · 1266 阅读 · 0 评论 -
leetcode -day16 ZigZag Conversion
1、ZigZag ConversionThe string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibili原创 2014-05-16 09:58:26 · 1476 阅读 · 0 评论 -
leetcode -day11 Clone Graph & Palindrome Partitioning I II
1、Clone GraphClone an undirected graph. Each node in the graph contains a label and a list of its neighbors.OJ's undirected graph serialization:Nodes are labeled uniquely.We use # as原创 2014-05-08 22:18:57 · 1102 阅读 · 0 评论 -
轻松搞定面试中的红黑树问题
版权所有,转载请注明出处,谢谢!http://blog.csdn.net/silangquan/article/details/18655795 连续两次面试都问到了红黑树,关键两次都没有答好,这次就完整地来学习整理一下。没有学习过红黑树的同学请参考:> Chapter 13 Red-Black Trees Chapter 14 Augmenting Dat转载 2014-04-22 17:38:57 · 937 阅读 · 0 评论 -
leetcode -day10 Word Ladder I II
1、Word LadderGiven two words (start and end), and a dictionary, find the length of shortest transformation sequence from start to end, such that:Only one letter can be changed at a tim原创 2014-05-07 15:19:36 · 1203 阅读 · 0 评论 -
映射二分堆
转自:http://eriol.iteye.com/blog/1174672平常,我们用堆最常见的就是随机地加入元素,随机地取最大值或最小值。这些基本的操作C++中的priority_queue和set都能很好的完成,而且C++中还有一个make_heap,效率较前面2个会更高。而且前面提到的STL都是采用红黑树实现的,很具有稳定性。 上面的堆虽然使用简单,但功能上还是转载 2014-03-25 14:41:51 · 1263 阅读 · 0 评论 -
leetcode day1 -- Reverse Words in a String && Evaluate Reverse Polish Notation && Max Points on a Li
以前从来没做过什么oj,发现做oj和在本地写代码或者纸上写差别还是很大的,觉得今天开始刷oj,特此记录一下。1、Reverse Words in a StringGiven an input string, reverse the string word by word.For example,Given s = "the sky is blue",return "blue原创 2014-04-24 10:26:02 · 1111 阅读 · 0 评论 -
leetcode day5 -- Reorder List && Linked List Cycle II
1、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原创 2014-04-28 10:01:59 · 845 阅读 · 0 评论 -
leetcode -day14 Populating Next Right Pointers in Each Node I II
1、Populating Next Right Pointers in Each NodeGiven a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next; }Populate原创 2014-05-13 11:03:48 · 926 阅读 · 0 评论 -
leetcode -day30 Reverse Linked List II
1、Reverse Linked List II Reverse a linked list from position m to n. Do it in-place and in one-pass.For example:Given 1->2->3->4->5->NULL, m = 2 and n = 4,return 1->4->3->2->5->NULL.原创 2014-06-16 21:24:07 · 1241 阅读 · 0 评论 -
leetcode -day29 Binary Tree Inorder Traversal & Restore IP Addresses
1、Binary Tree Inorder TraversalGiven a binary tree, return the inorder traversal of its nodes' values.For example:Given binary tree {1,#,2,3}, 1 \ 2 / 3return原创 2014-06-14 09:23:19 · 1200 阅读 · 0 评论 -
leetcode -day24 Maximum Depth of Binary Tree & Binary Tree Zigzag Level Order Traversal
1、Maximum Depth of Binary TreeGiven a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.clas原创 2014-05-30 17:39:10 · 1203 阅读 · 0 评论 -
leetcode -day23 Construct Binary Tree from Inorder and Postorder Traversal & Construct Binary Tree f
1、Construct Binary Tree from Inorder and Postorder TraversalGiven inorder and postorder traversal of a tree, construct the binary tree.Note:You may assume that duplicates do not exist in原创 2014-05-29 17:00:58 · 1696 阅读 · 0 评论 -
leetcode -day28 Unique Binary Search Trees I II
1、Unique Binary Search Trees IIGiven n, generate all structurally unique BST's (binary search trees) that store values 1...n.For example,Given n = 3, your program should return all 5 uni原创 2014-06-13 09:22:53 · 1033 阅读 · 0 评论 -
leetcode -day22 Binary Tree Level Order Traversal II & Convert Sorted Array to Binary Search Tree
1、Binary Tree Level Order Traversal IIGiven a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).For e原创 2014-05-26 09:27:31 · 1086 阅读 · 0 评论 -
leetcode -day21 Longest Substring Without Repeating Characters
1、Longest Substring Without Repeating CharactersGiven a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letter原创 2014-05-22 21:54:59 · 1055 阅读 · 0 评论 -
leetcode -day20 Add Two Numbers
1、Add Two Numbers You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two num原创 2014-05-20 22:03:02 · 1196 阅读 · 0 评论 -
小白鼠与毒药解题过程分析
网上流传着一题淘宝面试题,原题如下:我们有很多瓶无色的液体,其中有一瓶是毒药,其它都是蒸馏水,实验的小白鼠喝了以后会在5分钟后死亡,而喝到蒸馏水的小白鼠则一切正常。现在有5只小白鼠,请问一下,我们用这五只小白鼠,5分钟的时间,能够检测多少瓶液体的成分()。A:5, B:6, C:31, D:32。+1只小白鼠首先可以想象只有1只小白鼠的情况,毫无疑问,1只小白鼠五分钟只能判转载 2014-05-14 18:57:14 · 1128 阅读 · 0 评论 -
leetcode -day27 Recover Binary Search Tree & Interleaving String
1、Recover Binary Search TreeTwo elements of a binary search tree (BST) are swapped by mistake.Recover the tree without changing its structure.Note:A solution using O(n) space is pretty原创 2014-06-04 10:17:42 · 1223 阅读 · 0 评论 -
leetcodey -day25 Binary Tree Level Order Traversal & Symmetric Tree & Same Tree
1、Binary Tree Level Order TraversalGiven a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).For example:Given binary tree {3,9原创 2014-06-02 21:48:02 · 1199 阅读 · 0 评论 -
leetcode -day26 Validate Binary Search Tree
1、Validate Binary Search TreeGiven a binary tree, determine if it is a valid binary search tree (BST).Assume a BST is defined as follows:The left subtree of a node contains only nodes原创 2014-06-03 15:52:46 · 1048 阅读 · 0 评论 -
leetcode -day 15 Distinct Subsequences
1、Distinct Subsequences Given a string S and a string T, count the number of distinct subsequences of T in S.A subsequence of a string is a new string which is formed from the original str原创 2014-05-14 10:42:19 · 1135 阅读 · 1 评论 -
leetcode day6 -- String to Integer (atoi) && Best Time to Buy and Sell Stock I II III
1、String to Integer (atoi)Implement atoi to convert a string to an integer.Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yours原创 2014-04-28 15:28:07 · 1232 阅读 · 0 评论 -
leetcode -day9 Candy & Gas Station & Binary Tree Maximum Path Sum
1、CandyThere are N children standing in a line. Each child is assigned a rating value.You are giving candies to these children subjected to the following requirements:Each child must h原创 2014-05-06 17:31:19 · 1039 阅读 · 0 评论 -
排序算法之计数排序、基数排序和桶排序
转自:http://www.cnblogs.com/ttltry-air/archive/2012/08/04/2623302.html 计数排序,基数排序,桶排序等非比较排序算法,平均时间复杂度都是O(n)。这些排序因为其待排序元素本身就含有了定位特征,因而不需要比较就可以确定其前后位置,从而可以突破比较排序算法时间复杂度O(nlgn)的理论下限。计数排序(Counting转载 2014-03-25 11:03:47 · 857 阅读 · 0 评论 -
面试题整理10 最小的k个数
《剑指offer》面试题30:题目:输入n个整数,找出其中最小的k个数。例如输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。分析:求数组的第k小,如果能改变数组,那么采用二分法; 如果求数组前k小,如果可以改变数组,同样可以采用二分法; 如果不能改变数组那么采用堆排序,大堆的查找最大数操作复杂度为O(1),插入和删原创 2014-03-04 14:47:23 · 939 阅读 · 0 评论 -
面试题整理9 连续子数组的最大和
《剑指offer》面试题31:题目: 输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成的一个子数组,求所有子数组的和的最大值,要求时间复杂度为O(n)。分析:一个变量保存目前的子数组的和,一个变量保存目前最大的子数组的和。当遍历到某一个值时,如果第一个变量值变为负数,则将其舍掉,继续往下遍历;如果当前子数组的和大于保存的最大子数组的和,将当前子数组的和赋值给第二个变量原创 2014-03-04 14:25:16 · 910 阅读 · 0 评论 -
面试题整理 1:将一个字符串转换为整数
int myatoi(char * str){ bool begin = false; bool minus = false; while( *str != '/0'){ if(minus && *str!='-' && (*str > '9' || *str < '0')){ break; } if(*str == '-'){ minus = tru原创 2013-09-17 16:20:42 · 1337 阅读 · 0 评论 -
面试题整理 8 字符串排序扩展题
《剑指offer》扩展题,(1)求字符串所有字符的组合 分析:同样采取分治的思想,如果输入n个字符,则可以构成长度为1、2...n的组合。在n个字符求长度为m的组合时,可以分解为第一个字符和其余的所有字符;如果组合包含第一个字符,则下一步从剩余的字符里选取m-1个字符;如果组合不包含第一个字符,则下一步从剩余的字符里选取m个字符。采用递归的方式解决。代码:自己写的代码//原创 2014-03-03 14:21:08 · 1222 阅读 · 0 评论 -
面试题整理8 字符串的排列
《剑指offer》面试题28 题目: 输入一个字符串,打印该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab、cba。分析: 当我看到这个题目,我首先想到字符串中字符有可能重复,这时候该怎么办,如果没有重复那就是将所有字符的排列打印出来,全排列也是不怎么好求的,再往下就不好想了;原创 2014-03-03 10:09:59 · 1086 阅读 · 0 评论 -
面试题整理6 栈的压入、弹出序列
《剑指offer》面试题22:题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出序列。假设压入栈的所有数字均不相同。 例如序列1、2、3、4、5是某栈的入栈序列,序列4、5、3、2、1是该压栈序列所对应的一个弹出序列,但是4、3、5、1、2就不可能是该压栈序列的弹出序列。分析: 分析判断是否是弹出序列的条件,如果弹原创 2014-02-28 09:46:27 · 1523 阅读 · 0 评论