数据结构和算法
文章平均质量分 63
修远1990
12年浙江大学计算机科学与技术本科毕业;现为浙江大学计算机学院硕士;期间在美国道富公司实习,参与大型金融交易系统和对账系统的开发。此外,还带领一个小型团队开发了一款在线家教系统。
展开
-
约瑟夫环问题--ZOJ1088
约瑟夫环问题的描述如下:假设有n个人围成一圈,其编号依次为1, 2, 3, ..., n,现在使这n个人围成一圈,随机抽取一个人并将其剔除;之后依次选取与被剔除人相隔m的人并将其剔除,直到最后剩下一个人。这类问题可以给定最后剩下的人的编号以及n,求解最小的m的值;或者给定n和m,求最后剩下的人的编号。 此类问题解决思路是采用递推法,对于编号为1, 2, 3, ..., n的人,假设我们首先原创 2013-03-20 16:01:48 · 899 阅读 · 0 评论 -
[LeetCode] Candy
LeetCode: https://oj.leetcode.com/problems/candy/ ti原创 2014-09-21 21:42:07 · 427 阅读 · 0 评论 -
[LeetCode] Sort List
LeetCode: https://oj.leetcode.com/problems/sort-list/原创 2014-09-21 22:01:34 · 447 阅读 · 0 评论 -
多路归并排序
在经典的归并排序中,我们采用的都是二路原创 2014-09-12 12:33:52 · 579 阅读 · 0 评论 -
树的遍历
本文对树的遍历操作做个总结:1. 前序遍历递归实现:public class Solution { public List preorderTraversal(TreeNode root){ List result = new ArrayList(); preOrder(result, root); return result; } private void pr原创 2014-09-12 15:26:26 · 366 阅读 · 0 评论 -
[LeetCode] Search in Rotated Sorted Array
LeetCode: https://oj.leetcode.com/problems/search-in-rotated-sorted-array/原创 2014-09-12 16:20:27 · 408 阅读 · 0 评论 -
[LeetCode]Binary Tree Maximum Path Sum
LeetCode: https://oj.leetcode.com/problems/binary-tree-maximum-path-sum/原创 2014-09-12 19:40:15 · 438 阅读 · 0 评论 -
递归思想解决经典问题
递归是一个非常经典的算法思想,很多问题都可以采用递归来解决,特别是对于树、字符串这类本身就具有递归性质的数据结构相关的问题,下面就列出几个可以用递归来解决的经典问题:1. 字符串排列问题(不包含相同字符)该问题要求求出字符串的所有排列,我们可以循环遍历整个字符串,将每次循环遇到的字符和第一个位置的字符交换,然后求剩下字符串的所有排列;对于剩下的字符串,重复前面的过程,所以这是个递归的过原创 2014-09-09 21:05:30 · 962 阅读 · 0 评论 -
[LeetCode] Path Sum && Path Sum II
Path Sum: https://oj.leetcode.com/problems/path-sum/Path Sum II: https://oj.leetcode.com/problems/path-sum-ii/原创 2014-09-12 18:54:23 · 497 阅读 · 0 评论 -
[LeetCode]Combinations
LeetCode: https://oj.leetcode.com/problems/combinations/该题采用DFS的方法来解决,和Permutations,N-Queens的解决方式类似:代码如下:public class Solution { public List> combine(int n, int k) { List> comb原创 2014-09-12 19:50:20 · 397 阅读 · 0 评论 -
[LeetCode] Word Ladder
LeetCode: https://oj.leetcode.com/problems/word-ladder/原创 2014-09-14 15:44:06 · 556 阅读 · 0 评论 -
[LeetCode] Word Search
Given a 2D board and a word, find if the word exists in the grid.The word can be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those horizontally or vertically n原创 2014-09-14 16:03:49 · 405 阅读 · 0 评论 -
[LeetCode] Reverse Words in a String
Reverse Words in a StringGiven an input string, reverse the string word by word.For example,Given s = "the sky is blue",return "blue is sky the".click to show clarification.Clarification原创 2014-09-14 16:43:23 · 492 阅读 · 0 评论 -
[LeetCode] Median of Two Sorted Arrays
Median of Two Sorted ArraysThere are two sorted arrays A and B of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n))LeetC原创 2014-09-21 17:50:18 · 478 阅读 · 0 评论 -
[LeetCode]Decode Ways
A message containing letters from A-Z is being encoded to numbers using the following mapping:'A' -> 1'B' -> 2...'Z' -> 26Given an encoded message containing digits, determine the total number原创 2014-09-21 15:24:59 · 399 阅读 · 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}, reorder it to {1,4原创 2014-09-21 21:53:23 · 580 阅读 · 0 评论 -
卡特兰数
什么是Catalan数说到Catalan数,就不得不提及Catalan序列,Catalan序列是一个整数序列,其通项公式是我们从中取出的就叫做第n个Catalan数,前几个Catalan数是:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670转载 2013-03-21 21:52:42 · 495 阅读 · 0 评论 -
[LeetCode]Merge Intervals && Insert Interval
LeetCode: https://oj.leetcode.com/problems/merge-intervals/原创 2014-09-19 15:34:29 · 520 阅读 · 0 评论 -
[LeetCode] Surrounded Regions
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 example,原创 2014-09-19 15:58:59 · 376 阅读 · 0 评论 -
[LeetCode] String to Integer(atoi)
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 yourself wha原创 2014-09-19 16:10:30 · 453 阅读 · 0 评论 -
求二叉树的深度
求二叉树的深度是在面试过程中经常会出现的一道经典题目,求解原创 2014-09-08 14:40:07 · 394 阅读 · 0 评论 -
【字符串处理系列】最长不重复子串
问题描述:最长不重复子串的目的是原创 2014-09-08 14:30:28 · 2094 阅读 · 0 评论 -
【字符串处理系列】最长重复子串
最长重复子串是指在字符串中中找出原创 2014-09-08 16:10:18 · 716 阅读 · 0 评论 -
[LeetCode]Longest Valid Parentheses
Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring.For "(()", the longest valid parentheses substring is "()", which原创 2014-09-21 21:29:22 · 582 阅读 · 0 评论 -
[LeetCode]Binary Tree Maximum Path Sum
Given a binary tree, find the maximum path sum.The path may start and end at any node in the tree.For example:Given the below binary tree, 1 / \ 2 3Return 6.原创 2014-09-21 18:05:57 · 429 阅读 · 0 评论 -
[LeetCode] Word Break && Word Break II
Given a string s and a dictionary of words dict, determine ifs can be segmented into a space-separated sequence of one or more dictionary words.For example, givens = "leetcode",dict = ["leet",原创 2014-09-21 16:23:50 · 441 阅读 · 0 评论 -
[LeetCode] Palindrome Partitioning && Palindrome Partitioning II
Palindrome Partitioning Given a string s, partition s such that every substring of the partition is a palindrome.Return all possible palindrome partitioning of s.For example, given s = "aab",原创 2014-09-21 17:09:17 · 382 阅读 · 0 评论 -
【字符串处理系列】最长回文子串
这是一道非常经典的字符串处理问题,最朴素原创 2014-09-09 10:36:48 · 508 阅读 · 0 评论 -
算法设计之回溯法
笔者最近刚刚开始刷ACM题,发现连续刷的好几道题都是用回溯法的思想来解的,所以就对回溯法做了个总结。 回溯法是用来在解空间中寻找所有满足条件的解或者寻找最优解的非常有效的方法,其解空间的一种抽象表示就是一颗完全二叉树(假如读者连完全二叉树都不知道的话,就先去了解基本的数据结构吧。。。话说数这个数据结构真的是太强大了~~~)。回溯法计算的过程在二叉树中的抽象表示就是DFS(深度优先搜索),但原创 2013-04-27 11:47:58 · 816 阅读 · 0 评论