自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

dawn_after_dark的博客

To be a special coder!

  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

原创 剑指Offer-22-包含min函数的栈

题目定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。解析预备知识栈是一种“后进先出”的线性表,我们在线性表的尾部进行添加和删除元素。很常见的生活中的例子,就是洗盘子。我们所用过得盘子,都是最后收拾的盘子在上面,所以第一个要洗的就是第一个盘子。还有火车进站出站等等。再举个程序员都知道的例子,就是我们函数调用栈的原型也是来源栈的数据结构。其中每一次函数调用...

2018-06-30 19:38:21 237

原创 剑指Offer-21-顺时针打印矩阵

题目输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.解析预备知识我们需要对顺时针打印矩阵进行建模,也就是可以用一种规律描述这个问题。还是画图来吧,假设有4 X 4...

2018-06-29 23:59:12 269

原创 剑指Offer-20-二叉树的镜像

题目操作给定的二叉树,将其变换为源二叉树的镜像。解析预备知识我们需要理解二叉树的镜像是什么意思,画图解释更加直观! 思路一对于这种问题,还是画图比较清晰直观,既然我们想获得二叉树的镜像,那么根节点的两边必然是反过来的啊。所以第一步我们交换左右子树。 这时我们发现交换后的左右子树的子节点还是保持原来的顺序,所以需要我们去交换左右子树自己的左右子树。 综上...

2018-06-28 23:33:09 8171 2

原创 剑指Offer-19-树的子结构

题目输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)解析预备知识我们肯定见过类似的题目,比如合并两个排序的数组,其实这也是归并排序中一个子处理问题。我们一般的处理步骤如下 1. 申请一个额外的数组用来存放合并后的结果,大小为两个数组大小之和 2. 用两个索引index1,index2表示两个数组的访问位置 3. 循环判断若in...

2018-06-27 23:41:48 161

原创 剑指Offer-18-合并两个排序的链表

题目输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。解析预备知识我们肯定见过类似的题目,比如合并两个排序的数组,其实这也是归并排序中一个子处理问题。我们一般的处理步骤如下 1. 申请一个额外的数组用来存放合并后的结果,大小为两个数组大小之和 2. 用两个索引index1,index2表示两个数组的访问位置 3. 循环判断若i...

2018-06-22 16:39:34 222

原创 剑指Offer-17-反转链表

题目输入一个链表,反转链表后,输出新链表的表头。解析预备知识链表之类的题目,一般都会涉及到指针的指向问题,对于这类问题,我们可以通过画图来找思路,空想总是比不过烂笔头。注意链表的三种情况,做到万无一失。 1. 输入的链表头指针是null 2. 输入的链表只有一个结点 3. 输入的链表有多个结点思路一我们先画图看看如何反转链表。 通过以上分析我们发现,...

2018-06-21 20:07:47 1305 2

原创 剑指Offer-16-链表中倒数第k个结点及其相关变形题目

题目输入一个链表,输出该链表中倒数第k个结点。为了不引起歧义,我们规定最后一个节点为倒数第1个结点。解析预备知识最简单想法肯定就是链表遍历了,分为2次遍历,第一遍历统计出链表的所有节点数,那么倒数第k个结点位于n - k + 1位置处(注意此处说的位置从1开始计数),那么我们第二次遍历则从头结点开始,走n - k步即可到达倒数第k个结点。 由于思路很简单,此处代码省略,感...

2018-06-20 11:41:54 240

原创 剑指Offer-15-在O(1)时间删除链表结点

题目给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。解析预备知识我们都知道删除在O(n)时间内如何删除一个结点,即遍历链表,找到待删除结点的前一个节点,令该结点的next指向待删除结点的下一个节点即可,这样就可以把待删除结点从链表中移除了。 /** * 仅用一个指针删除指定节点 * O(n)时间内删除 *...

2018-06-20 09:31:19 488

原创 剑指Offer-14-打印1到最大的n位数

题目输入数字n, 按顺序打印出从1到最大的n位十进制数,比如数3,则打印出1,2,3….一直到3位数最大即999解析思路一 public static void printToMaxOfNDigits1(int n) { if(n <= 0) { return; } char[] num...

2018-06-17 17:27:20 1421

原创 剑指Offer-13-调整数组顺序是奇数位于偶数前面

题目输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变解析这里其实牛客网把题目加强了,原书上是没有后面约束的,这时我们采用2个指针,一个指向数组开头,一个指向数组结尾,保证第一个指针永远指偶数,另一个指针永远指奇数,这样每交换一下,就把第一个指针向后移,第二指针向...

2018-06-17 16:07:02 174

原创 剑指Offer-12-数值的整数次方

题目给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。解析思路一大多数一看这题感觉很简单,我当时也是,直接调用Math库即可呀,可是面试考的不是对API的熟练的程度,而是对数据逻辑处理能力,所以思路一调库这个可以直接pass掉了。思路二那就自己造轮子把,于是你可能迅速的写下了如下代码: p...

2018-06-16 23:44:42 278

原创 剑指Offer-11-二进制中1的个数

题目输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解析预备知识世界上有10种人,一种人知道二进制,而另一种人不知道二进制。 在计算机中数都是采用二进制存放的,这与硬件设计电路(比如与门,放大器)等有关,且二进制只有2种状态,简单高效,故计算机采用二进制。 而参与运算的数在计算机一般用其补码形式存放。 补码是原码减1,除了符号位以外全部按位取反得...

2018-06-15 16:18:38 468

原创 剑指Offer-10-矩阵覆盖

题目我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?解析这类求种数问题都是有规律,故可以用动态规划来做,如果没有思路,那么可以通过举例子或者画图来描述从而找到问题的解。 1. 当n = 0,f(0) = 0, 矩阵面积为0,所以当然没法放小矩形了。 2. 当n = 1, f(1) = 1。2*1的...

2018-06-14 21:02:35 296

原创 剑指Offer-09-变态跳台阶

题目一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解析此题在这一题上更改了跳台阶的条件,比如青蛙可以一次跳1次,跳2次,……跳n次,此时青蛙走到n阶台阶的总共有多少种呢? 通项公式为: f(n)={1,f(n−1)+f(n−2)....+f(0),n = 0n > 1f(n)={1,n = 0f(n−1)+f...

2018-06-14 20:20:23 183

原创 数的快速幂与矩阵的快速幂

快速幂对于任意底数的幂结果都可以分解为指数为2的幂的结果相乘。 因为任意一个数可以用二进制来表示,所以我们的指数(假设为b),可以写成 b=b0∗20+b1∗21+b2∗22+......+bn∗2n (式子1)b=b0∗20+b1∗21+b2∗22+......+bn∗2n (式子1)b = b_0 * 2^0 + b_1 * 2^1 + b_2 * 2^2 + ...

2018-06-14 19:45:34 395

原创 剑指Offer-08-跳台阶

题目一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 n<=39解析预备知识此题为斐波那契数列的变形,也就是上一篇博客所讲的东西,只不过是数列的第0项为1,第1项为1,第二项为2。所以上一篇博客里面的代码只需改掉第0项的值为1,就可以完美解决这道题。我这里再重复说一下! 通项公式为: f(n)= \...

2018-06-14 15:03:47 225

原创 剑指Offer-07-费波纳茨数列

题目大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39解析预备知识斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、…… 通项...

2018-06-13 23:53:32 406

原创 剑指Offer-06-旋转数组的最小数字

题目把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。解析其实这里考察的查找,而经典的查找不外乎有二分查找,二叉排序树,二叉平衡树,红黑树或者哈希查找之类...

2018-06-13 20:09:50 193

原创 剑指Offer-05-用两个栈实现队列

题目用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解析预备知识首先我们需要对栈和队列的性质了如指掌。栈和队列其实都是带有约束的线性表。 栈是一种“后进先出”的线性表,我们在线性表的尾部进行添加和删除元素。很常见的生活中的例子,就是洗盘子。我们所用过得盘子,都是最后收拾的盘子在上面,所以第一个要洗的就是第一个盘子。还有火车进站出站等等。...

2018-06-10 19:31:54 185

原创 剑指Offer-04-重建二叉树

题目输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解析预备知识要想做好这样的题目,首先应该深刻理解了树的遍历形式。树有4种遍历形式。 1. 前序遍历:先访问根节点,然后访问左子节点,最...

2018-06-09 16:39:52 286

原创 剑指Offer-03-从尾到头打印链表

题目输入一个链表,从尾到头打印链表每个节点的值。解析思路一看到这样题,很容易想到的就是遍历链表,把节点的值记录到一个容器中,然后翻转容器即可。 /** * 正常打印,最后交换 * @param listNode * @return */ public static ArrayList<Integer>...

2018-06-08 19:34:19 163

原创 浅谈代理

代理代理作为客户端和服务器之间的中间者控制着消息的转发,代理的起源来源于客户端缓存功能,它会接受请求消息,然后根据缓存中是否存在目标数据而“伪装”成原始客户端向目标Web服务器发送消息。现在代理一般常用于动态负载均衡和翻墙(:))。正向代理正向代理值得是放在客户端一端的代理服务器,使用正向代理,需要在浏览器中的设置窗口中设置代理服务器的IP地址,这样就会导致浏览器产生的HTTP的请...

2018-06-07 14:40:54 181

原创 剑指Offer-02-替换空格

题目请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解析思路一很可能陷入误区,以为只要返回的字符串符合题意就可以,其实并不然。这道题其实考察的是在原址上进行字符串替换操作。所以下面的代码是错误! str.toString().replaceAll(" ", "%...

2018-06-07 11:17:11 266

原创 剑指Offer-01-二维数组中的查找

题目在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解析题目的意思很简洁而且易懂,就是给定一个二维数组,每一行和每一列都是从小到大的排列,现在给你一个数,让判断该数是否在这个二维数组中。思路一暴力,双层循环,没什么难度。思路二这时我们可能这样...

2018-06-06 14:51:58 407

原创 路由选择协议

路由选择协议BGP BGP (边界网关协议,Border Gateway Protocol)是自治系统之间的路由选择协议。边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。BGP是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。BGP 构建在 EGP 的经验之上。BGP 系统的主要功能是和其他的BGP系统交换网...

2018-06-05 14:54:10 3412

原创 HDU 3499 Flight(SPFA + dp)

题目Recently, Shua Shua had a big quarrel with his GF. He is so upset that he decides to take a trip to some other city to avoid meeting her. He will travel only by air and he can go to any city if th...

2018-06-05 11:22:34 308

原创 SDNUOJ 1048 石子合并2(区间动态规划)

题目描述有n堆石子排成一圈,每次选择相邻的两堆石子,将其合并为一堆,记录该次合并的得分为两堆石子个数之和。已知每堆石子的石子个数,求当所有石子合并为一堆时,最小的总得分。 Input 第一行一个整数n(1 <= n <= 200),表示石子堆数; 第二行n个整数a(1 <= a <= 100),表示每堆石子的个数,这些石子首尾相接排成一圈。 Output 一个整...

2018-06-04 15:29:10 461

z-tree 所需的js和css文件,附带一个版本的jq文件

也可以自行去官网下载,我这里只是提取了我博客功能实现所需的必须文件

2017-04-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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