LeetCode
文章平均质量分 70
leetcode题解
wongson
这个作者很懒,什么都没留下…
展开
-
弗洛伊德判圈算法
先来看链表是否有环的判断设链表起始节点为H,回路起始节点为S,两指针第一次相遇节点为M。设回路的长度为c,S到M的距离为c1,M到S的距离为c2。设H到S的距离为d。设hare每次移动2,tortoise每次移动1。移动k次后两者相遇。不难发现,H到M的距离为k。为了便于理解,请参考下图:由已知条件,可得到下列等式:hare和tortoise相遇时,hare套了tortoi原创 2015-10-08 21:29:29 · 2680 阅读 · 0 评论 -
二分搜索
Sqrt(x) Implement int sqrt(int x).Compute and return the square root of x.原创 2015-04-01 18:20:52 · 504 阅读 · 0 评论 -
LRU cache
实现lru 缓存LRU Cache Total Accepted: 35641 Total Submissions: 241374My SubmissionsQuestion Solution Design and implement a data structure for Least Recently Used (LRU) c原创 2015-04-09 15:28:19 · 912 阅读 · 0 评论 -
层次遍历二叉树
public class Solution { static class Queue { static final int MAX_SIZE = 1 << 10; private TreeNode list[]; int head; int tail; int cap; Queue() {原创 2015-04-10 17:29:18 · 659 阅读 · 0 评论 -
复制无向带环图
Clone 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 a separator for each原创 2015-04-13 16:06:04 · 1067 阅读 · 0 评论 -
BST迭代器
Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the root node of a BST.Calling next() will return the next smallest number in the BST.Note: next() and has原创 2015-04-16 16:19:26 · 1200 阅读 · 0 评论 -
先序和中序建立二叉树
Construct Binary Tree from Preorder and Inorder Traversal Given preorder and inorder traversal of a tree, construct the binary tree.Note:You may assume that duplicates do not exist in th原创 2015-04-23 12:50:36 · 1687 阅读 · 0 评论 -
变位分词
static int prime[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101}; static public int mapping(String s) { int val = 1; for原创 2015-04-24 22:44:32 · 740 阅读 · 0 评论 -
判断二叉树是否对称
static boolean isMirror(TreeNode left, TreeNode right) { if (left == null && right == null) return true; else if (right == null) { return false; } else if (left ==原创 2015-04-24 21:42:04 · 1605 阅读 · 0 评论 -
求二叉树最远距离
int max=Integer.MIN_VALUE; int maxHeightSum(TreeNode root) { if (root == null) return 0; int maxL = Math.max(maxHeightSum(root.left), 0); int maxR = Math.max(maxHeightSum原创 2015-04-25 19:14:19 · 672 阅读 · 0 评论 -
文件路径化简
Given an absolute path for a file (Unix-style), simplify it.For example,path = "/home/", => "/home"path = "/a/./b/../../c/", => "/c"Corner Cases:Did you consider the case where path原创 2015-04-29 16:37:14 · 844 阅读 · 0 评论 -
平衡二叉树判定
1. int height(TreeNode root) { if (root == null) return 0; return Math.max(height(root.left), height(root.right)) + 1; } public boolean isBalanced(TreeNode root) { if原创 2015-04-29 18:44:48 · 635 阅读 · 0 评论 -
将升序数组转化为平衡二叉树
public class Solution { TreeNode convert(int num[], int l, int r) { if (l >= r) return null; int m = (l + r) / 2; TreeNode left = convert(num, l, m); TreeNode root原创 2015-04-29 20:13:17 · 1750 阅读 · 0 评论 -
Best Time to Buy and Sell Stock IV
Say you have an array for which the ith element is the price of a given stock on day i.Design an algorithm to find the maximum profit. You may complete at most k transactions.Note:You may原创 2015-05-03 14:43:02 · 1374 阅读 · 0 评论 -
N皇后问题
The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens attack each other.Given an integer n, return all distinct solutions to the n-queens puzzle.原创 2015-05-10 12:57:12 · 602 阅读 · 0 评论 -
用dfs实现拓扑排序
拓扑排序,详见算法导论There are a total of n courses you have to take, labeled from 0 to n - 1.Some courses may have prerequisites, for example to take course 0 you have to first take course 1, which原创 2015-05-16 00:27:56 · 2008 阅读 · 0 评论 -
有向图判断是否有环
There are a total of n courses you have to take, labeled from 0 to n - 1.Some courses may have prerequisites, for example to take course 0 you have to first take course 1, which is expressed as原创 2015-05-13 23:41:02 · 709 阅读 · 0 评论