自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yuyurenjie的博客

前端小白进阶之路

  • 博客(30)
  • 收藏
  • 关注

原创 前端面试必备——图

图图是由边和点组成。一条边连接的两个点称为相邻顶点。图可以是无向的也可以是有向的。本文探讨的都是无向图。图的表示图一般有以下两种实现方法: 1. 邻接矩阵:使用二维数组来表示点与点之间是否有边,如arr[i][j]=1则表示节点i与节点j之间有边,如果arr[i][j]=0则表示节点i与节点j之间没有边。 2. 邻接表:使用数组或字典结构来表示与节点i之间有边的节点集合:如arr[i]=[j,k

2017-08-31 19:49:28 2953 1

原创 剑指offer——28.数组中出现次数超过一半

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。

2017-08-19 16:56:55 916

原创 剑指offer——27.字符串排列

题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。

2017-08-19 16:55:22 902

原创 剑指offer——26.二叉搜索树与双向链表

题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。

2017-08-19 16:37:16 690

原创 剑指offer——25.复杂链表的复制

题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)

2017-08-16 15:30:50 614 1

原创 剑指offer——24.二叉树中和为某一值的路径

题目描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。

2017-08-16 15:25:29 682

原创 剑指offer——23.二叉搜索树的后序遍历

题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。

2017-08-16 11:06:40 569

原创 剑指offer——14.链表中倒数第k个结点

题目描述输入一个链表,输出该链表中倒数第k个结点。

2017-08-14 10:46:23 801

原创 剑指offer——22.从上往下打印二叉树

题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。代码思路1:递归方法,按顺序从上往下,从左往右打印function PrintFromTopToBottom(root){ // write code here if(root==null) return []; var result=[]; result.push(root.val);

2017-08-14 10:42:51 567

原创 剑指offer——21.栈的压入、弹出

题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)代码

2017-08-14 10:28:48 666

原创 剑指offer——20.包含min函数的栈

题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。

2017-08-14 10:26:45 596

原创 剑指offer——19.顺时针打印矩阵

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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.代码思路:选坐标为(0,0),(1,1)…的点记为(start,start),作为开始坐标,下一圈开始坐标为(start+1,sta

2017-08-14 10:25:21 621

原创 剑指offer——18.二叉树镜像

题目描述操作给定的二叉树,将其变换为源二叉树的镜像二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \

2017-08-14 09:54:44 651

原创 剑指offer——17.树的子结构

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)

2017-08-12 19:39:32 866 1

原创 剑指offer——16.合并两个排序的链表

题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。代码思路:两个指针分别指向链表元素,然后比较两个元素大小,小的则连到合成后链表,直到达到一个链表的末尾。然后如果哪一个链表还有元素,直接连到合成后链表后面即可。function ListNode(x){ this.val = x; this.next = null;}functio

2017-08-12 19:36:09 847

原创 剑指offer——15.反转链表

题目描述输入一个链表,反转链表后,输出链表的所有元素。

2017-08-12 19:16:43 858

原创 剑指offer——13.调整数组顺序

题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

2017-08-08 20:11:36 507

原创 剑指offer——12.数值的整数次方

题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。

2017-08-08 20:09:31 493 1

原创 剑指offer——11.二进制中1的个数

题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

2017-08-07 10:17:56 880

原创 剑指offer——10.矩形覆盖

题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?

2017-08-07 10:15:14 762

原创 剑指offer——9.变态跳台阶

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

2017-08-07 10:12:52 919

原创 剑指offer——8.跳台阶

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

2017-08-04 15:46:24 543

原创 剑指offer——7.斐波那契数列

题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39代码思路:f(1)=1,f(2)=1,f(3)=f(1)+f(2)function Fibonacci(n){ // write code here var result=[]; if(n<=0) return 0; else if(n<=2) return 1;

2017-08-04 15:35:34 582

原创 剑指offer——6.旋转数组的最小数字

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。

2017-08-04 15:33:31 646

原创 剑指offer——5.用两个栈实现

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

2017-08-04 15:28:48 579

原创 剑指offer——4.重建二叉树

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。代码思路:二叉树前序遍历第一个点为根节点,中序遍历顺序为先左子树然后根节点最后右子树。所以先通过前序遍历找出根节点,然后将中序遍历分为左右子树两组,最后对于每

2017-08-03 14:41:51 1171 1

原创 剑指offer——3.从尾到头打印链表

题目描述输入一个链表,从尾到头打印链表每个节点的值。代码思路:先将链表每个结点的值存入数组中,然后通过数组的reverse方法,即可从尾到头打印function printListFromTailToHead(head){ // write code here var arr=[]; while(head!=null){ arr.push(head.val)

2017-08-03 14:38:31 1094

原创 剑指offer——2.替换空格

题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。代码思路:使用正则表达式,\s+代表多个空格,?则表示取尽可能少的空格,然后通过replace函数替换为%20function replaceSpace(str){ // write code here return st

2017-08-02 19:55:16 1098

原创 剑指offer——1.二维数组中的查找

本系列代码都在牛客的剑指offer在线编程上通过,版本为v8 6.0.0题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。代码思路:因为矩阵的特殊性,所以先从第一列最后一行开始比较,小于则向上查找,大于则向后查找function Find(target, array){

2017-08-02 19:51:32 1502

原创 前端面试宝典——栈

栈是一种先进后出的结构,新添加的或待删除的元素都保存在栈的末尾,称作栈顶,另一端叫做栈底。示意图如下:栈的创建在JavaScript生成栈,一般使用数组来形成。var items=[];栈的方法栈一般会有下列几种方法:push:元素入栈pop:元素出栈peek:返回栈顶元素isEmpty:判断栈是否为空clear:清除栈中所有元素size:返回栈中元素个数push元素入栈可以直接使用数

2017-08-01 20:26:11 893 2

空空如也

空空如也

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

TA关注的人

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