Yuwen's Hero

为天地立心,为生民立命,为往圣继绝学,为万世开太平

排序:
默认
按更新时间
按访问量

短址(short URL)原理及其实现

前言: 最近看了一些关于短址(short URL)方面的一些博客,有些博客说到一些好的东西,但是,也不是很全,所以,这篇博客算是对其它博客的一个总结吧。 介绍: 短址,顾名思义,就是把长的 URL 转成短的 URL, 现在提供这种服务的有很多公司,我们以google家的 URL sh...

2012-07-01 08:26:35

阅读数:90543

评论数:38

把一个字符串通过相邻字符移位变成另一个字符串 [No. 54]

问题: 给你两个字符串,比如 ABCD 和 DBCA,通过交换相邻字符的位置,把第一个字符串,变成第二个字符串,打印所有的步骤。比如从ABCD到DBCA,步骤是: ABCD ---> BACD ---> BCAD ---> BCDA ---> BDCA  --->...

2012-02-29 07:02:50

阅读数:2801

评论数:0

扑克洗牌 [No. 69]

给你一副牌,牌的张数为 N ,把它分成 K 堆,每一堆有 T = ( N / K )张 (假定N 能够被 K 整除)。分法如下:从牌的底部取 T 张给第一堆(顺序不变),再从底部取 T 张给第二堆,,,,最后把剩余的 T 张牌给最后一堆。比如,一副牌为 A B C D E F (顺序从上到下),如...

2012-01-05 02:06:25

阅读数:1731

评论数:0

只使用加法实现减法,乘法和除法 [# 68]

问题: 给你两个整数 a 和 b,仅仅使用加法,实现 a - b, a * b, a / b。 分析: 对于减法,因为 a - b = a + (-1) * b, 换句话说,我们只要得到 b 的相反数,就可以用加法实现 a - b。 对于乘法,a * b 相当于是 对 |a| 做 |b| ...

2012-01-02 02:27:10

阅读数:8803

评论数:8

找出第k大的数[No. 64]

问题: 从一个数组里面,找出第K大的数。 题目很简单,要想把第K个数找出来,其实也挺容易的。 第一种方法:无非就是先排序,比如用Merge Sort算法,整个算法复杂度为 O(NlgN), 然后找到第K个即可。 第二种方法:如果k很小,比如第五个最大的数,而整个数组的长度非常的大,那么,还...

2011-11-20 04:54:03

阅读数:8330

评论数:1

判断有向图是否有环 [No. 75]

要判断一个有向图是否有环,我们可以选择选择BFS, DFS 或者 Topological sorting. 用BFS或者DFS进行判断时,我们主要判断要被访问的node是否已经被访问过,如果被访问过,就有环。利用topological sorting进行判断的时候,就是判断node是否只有一个no...

2011-11-14 01:55:11

阅读数:3020

评论数:0

判断一个单链表是否有环,如果有,找出环的起始位置 [No. 36]

How can one determine whether a singly linked list has a cycle? 第一种方法是从单链表head开始,每遍历一个,就把那个node放在hashset里,走到下一个的时候,把该node放在hashset里查找,如果有相同的,就表示有环,如...

2011-11-11 14:26:32

阅读数:2621

评论数:1

一个字典,给你一个word找出所有anagram [No. 18]

所谓anagram, 就是一个词A通过里面字母顺序的变换得到另一个词B,那个B就是A的anagram。 现在给你一个词A,然后给你一个字典,这个字典里含有很多次,在字典里找出所有A 的 anagram. 这道题的关键点是,怎么去判断两个单词是否是anagram。 这里用到的方法是 把A 进行排...

2011-11-11 13:51:32

阅读数:1715

评论数:0

交换序列a,b中的元素,使|sum(a)-sum(b)|最小 [No. 49]

有两个序列a,b,大小都为n,序列元素的值任意整数,无序. 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。 例如:    int[] a = {100,99,98,1,2, 3}; int[] b = {1, 2, 3, 4,5,40};   ...

2011-11-11 03:33:39

阅读数:4414

评论数:5

最长递增子序列 [No. 39]

给定一个长度为n的数组,找出一个最长的单调递增子序列(不一定连续,当时先后顺序不能乱)。 更正式的定义是: 设L=是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=,其中k1。 比如数组A 为{10, 11, 12, 13, 1, 2, 3, 15}, 那么最长递增子序列为{10,...

2011-11-10 09:00:59

阅读数:2518

评论数:0

判断字符串可否通过另一个字符串的循环移位得到 [No. 34]

假设字符串s1=AABCD,s2=CDAA,判断s2是否可以通过S1的循环移位得到字符串包含。如 s1移两位: 1.ABCDA->2.BCDAA 则此时包含了 S2="CDAA" 解题思路:  分解s1的循环移位得到:  AABCD,ABCDA,BCDAA,CD...

2011-10-30 22:24:23

阅读数:2200

评论数:0

字符串匹配(String matching)[No. 76]

字符串匹配就是给定两个字符串 T 和 P, 看T是否完全包含P。 比如 T = abcdeff, P = abce,则P不匹配T,如果P = eff,则P匹配T。 非常原始的做法就是从T的第一个字母开始和P进行比较,如果达到P的最后一个字母仍旧是相同的,那么就成立,否则,从T的第二个字母有开始比...

2011-09-18 04:26:28

阅读数:1069

评论数:0

骆驼和玉米 [No. 80]

一个骆驮运玉米从A地到B地, 骆驮一次最多运1000个玉米,A地距离B地有1000米远. 而骆驮每走1米就要吃一个玉米.现在有3000个玉米.现在要从A运到B. 问到B地最多还能剩下多少个玉米? wantalcs给出的答案是:   class Program { private sta...

2010-07-15 09:21:00

阅读数:1802

评论数:0

关系数据库的第一第二第三范式

下面这篇文章是我在知乎上看到的,写得非常的清楚明了,所以转载过来。 作者:刘慰 链接:https://www.zhihu.com/question/24696366/answer/29189700 首先要明白”范式(NF)”是什么意思。按照教材中的定义,范式是“符合某一种级别的关...

2016-09-01 04:16:56

阅读数:1205

评论数:0

不使用栈把二叉树中序输出

问题: 把一个二叉树中序输出,但是不能使用栈或者O(n)空间来实现。 分析: 把二叉树中序输出,我们可以使用递归或者采用非递归方式,但是不管是哪种方式,我们总是需要O(n)的空间,所以如果只能使用常数空间,的确很难想到,但是一旦掌握该种方法,还是挺有用的,至少拓宽了自己解决问题的思路...

2015-08-13 00:07:59

阅读数:1549

评论数:0

Sum of a tree

You are given a tree, and the nodes in the tree may have more than two child nodes, calculate the sum of the tree where the root to the leaf is consi...

2013-02-24 12:54:47

阅读数:2104

评论数:0

Group of 1s in a Matrix

Given a matrix with 1s and 0s, please find the number of groups of 1s. A group is defined by horizontally or vertically adjacent 1s. For example, the...

2013-02-24 12:52:57

阅读数:1924

评论数:0

Split string to palindrome

Question: Give a string, use minimum number of splits to divide the string into multiple parts in which each part a palindrome. For example, if the ...

2013-02-24 12:52:08

阅读数:1907

评论数:0

O变X

给你一个n * n 的二维char数组 内部存的是 'X' 和 'O',形式如下 X  X  X  X  X X  O  O  O  X X  X  O  O  X X  X  X  O  X X  O  X  X  X 编写一个函数将被'X'包围的'O'统统变成'X'。 比如下标为 ...

2013-02-24 12:50:24

阅读数:2353

评论数:0

Restore IP Addresses

Given a string containing only digits, restore it by returning all possible valid IP address combinations. For example: Given "25525511135&quo...

2013-02-03 00:55:58

阅读数:1725

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭