算法之朴素模式匹配

0x00 前言 不论英文还是中文,在看文章时经常会遇到查找某个单词或字组的时候,把一篇文章看作是一个大的字符串,要查找的内容作为子串,这种在大串中查找子串的操作叫做串的模式匹配。 我们知道了这种行为叫串的模式匹配,但我们不清楚的是到底如何匹配,具体的操作是什么? 0x01 我如何操作 在我看来要从大串中寻找子串,最直接的方法就是从大串起始位置开始,挨个字符比...

两个栈实现队列功能

0x00 前言 用2个栈实现队列,首先要明白栈和队列的区别:栈是FILO,队列是FIFO。明白了这两点就比较容易实现了。 0x01 分析 栈是一端开口,队列是两端开口,如果要让栈实现队列功能,需要2个栈一个负责进数据,一个负责出数据。为了保证出数据的顺序,在出数据栈不为空时,入数据的栈中数据不能往出数据的栈里存。 0x02 实现 在2个栈数据都为空时注意...

设计一个有获取元素最小值getMin的栈

0x00 前言 栈可以看成一个瓶子,只有一个口,另一端被封底。这样数据进出都只能从一个口经过。这样就导致的一个直接结果就是数据FILO问题。要找到栈中最小数据,单靠一个栈不能完成,需要外部提供辅助。 0x01 分析 一个存好数据的栈,要从里面找到最小数值,不可避免的要把数据出栈,然后进行对比。这时有个问题就来了,找到最小数值后,其他数据还有用吗?换句话说,其...

算法排序之快速排序

实现目标 本例中希望通过快速排序,使得数组最终按非递减顺序排列。 数组初始值为:{ 156, 141, 35, 94, 88, 61, 111 } 数组最终值为:{ 35, 61, 88, 94, 111, 141, 156 } 实现分析 快排是根据分治思想, ①选取一个基数, ②将无序数组分为大小两个数组,其中一个数组值全都比基数小,另一个数组值全都比...

数学归纳法

什么是数学归纳法 数学归纳法就是证明一个命题在自然数范围内成立 这里命题也可以当成是断言。 比如断言自然数n,nx2为偶数。 求储蓄罐里的钱 有一个空储蓄罐, 第一天,往里面存1元钱; 第二天,往里面存2元钱; 第三天,往里面存3元钱; 第四天,往里面存4元钱; 。 。 。 每天都存钱,第一百天时储蓄罐里一共有多少钱? 这个问题如何求解呢?其实最直接的方...

四个人过桥问题

有甲乙丙丁4个人要过桥,他们都在桥一端,他们只有17分钟时间过桥。时间在晚上,过桥需要用到手电筒,而且手电筒必须来回都用到且手电筒不能扔来扔去,一次只能有2个人同时过桥。每个人走路速度不同,甲过桥需要1分钟,乙过桥需要2分钟,丙过桥需要5分钟,丁过桥需要10分钟。两个人一起走路,速度决定于走的慢的那个。请你给这四人规划合适的搭配过桥。 看到这道题脑子第一...

农夫带着狼、羊和白菜过河问题

一个农夫带着一只狼,一只羊和一棵白菜来到河边要过河,船只狭小,一次农夫只能带一样物品过河,如果农夫不在场,狼会吃羊,羊也会吃白菜。那么农夫如何才能过河或者证明出无解。 这是一道自古有之的谜题,但是一些公司也有把这作为笔试题... 看到这个题我的第一个想法就是船上系一根绳,把狼和白菜一起放船上,待漂到对岸后再用绳子拉过来,然后农夫抱着羊过河。不过这太投机取巧了...

详解设计模式之责任链模式

说在前面的话 责任链模式也叫职责链,抛开设计模式不谈,单看“责任链”这三个字,关注点一下子就放到了“链”字上了。链即锁链、链条,像链子一样环环相扣的东西。比如我们数据结构中的链表,当前对象持有下一个对象的地址。同样,设计模式中的责任链也是如此,任务一环套一环,环环相扣。 面试流程分析 作为技术人员离职再就业少不了要面试的,那么我们就拿面试流程来细说。假设...

Android网络框架okhttp执行流程分析

说在前面的话 Android开发中,网络框架okhttp可以说是越来越风光,Android4.4的源码中可以看到HttpURLConnection已经替换成OkHttp,能够被谷歌认可,足见okhttp的强大之处了。既如此还有什么理由不去深入理解下它呢?很惭愧,这么好的东西以前一直处于简单调用,今天有时间把流程看了一下,简单总结了下执行请求时的大概流程作为备...

第 1 页 / 共 2 页 下一页