算法
文章平均质量分 80
MeConverse
这个作者很懒,什么都没留下…
展开
-
判断单链表是否存在环,判断两个链表是否相交问题详解
有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。问题:1、如何判断一个链表是不是这类链表?2、如果链表为存在环,如何找到环的入口点?解答:一、判断链表是否存在环,办法为:设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fas转载 2011-11-09 14:55:28 · 449 阅读 · 0 评论 -
算法面试题
1.比较两个字符串如果不等返回True?答案:Java代码 package com.test.kaoshi; public class StringDemo { private static String a = "abc"; private static String b = "abcg";转载 2012-03-07 14:01:16 · 2066 阅读 · 0 评论 -
斐波那契数列算法分析
背景:假定你有一雄一雌一对刚出生的兔子,它们在长到一个月大小时开始交配,在第二月结束时,雌兔子产下另一对兔子,过了一个月后它们也开始繁殖,如此这般持续下去。每只雌兔在开始繁殖时每月都产下一对兔子,假定没有兔子死亡,在一年后总共会有多少对兔子?在一月底,最初的一对兔子交配,但是还只有1对兔子;在二月底,雌兔产下一对兔子,共有2对兔子;在三月底,最老的雌兔产下第二对兔子,共有3对兔子;在四月底转载 2012-03-05 12:53:56 · 705 阅读 · 0 评论 -
字符串全排列
问题:给定字符串S,生成该字符串的全排列。方法1:依次从字符串中取出一个字符作为最终排列的第一个字符,对剩余字符组成的字符串生成全排列,最终结果为取出的字符和剩余子串全排列的组合。#include #include usingnamespacestd; voidpermute1(string prefix, string str)转载 2012-02-21 10:33:13 · 688 阅读 · 0 评论 -
提取某日访问次数最多的那个IP
海量数据日志中,提取出某日访问次数最多的那个IP。 思路:对于海量数据的处理,主要采取的策略就是分而治之,即缩减问题的规模,将一个大的问题划分成若干等价的小问题。然后解决这些小问题,最后将获得的小问题解综合起来,得出原问题的解。用到比较多的技术主要有散列、位图、堆、trie树、mapreduce、K路归并(败者树)等。其中散列用的尤为多。转载 2012-02-22 16:42:46 · 694 阅读 · 0 评论 -
用两个栈实现一个队列
两年前从网上看到一道面试题:用两个栈(Stack)实现一个队列(Queue)。觉得不错,就经常拿来面试,几年下来,做此题的应该有几十人了。通过对面试者的表现和反应,有一些统计和感受,在此做个小结。 用C++描述,题目大致是这样的: 已知下面Stack类及其3个方法Push、Pop和 Count,请用2个Stack实现Queue类的入队(Enqueue)出队(Dequeue)方法转载 2012-02-22 16:05:10 · 524 阅读 · 0 评论 -
部分面试题解题思路
这几天在网上看到一篇关于算法面试题的博客,归纳的很好,有不少经典的题目,大部分来自《编程珠玑》、《编程之美》、《代码之美》三本书。这里给出书上的解答以及一些思考。如有不对的地方,希望得到高手的指点。【一】 时间受限大部分的面试题,都是对时间复杂度有所要求的,如果有涉及,“最快”一类的字样,毫无疑问,先上时空原理,用空间来换时间。Hash,大数组,一些辅助性的空间,都是首选。转载 2012-02-22 16:08:41 · 999 阅读 · 0 评论