剑指offer
pending-s
过去未来分界点就是现在
展开
-
js——替换字符串中的空格
题目背景:在网络编程中,如果URL参数中含有特殊字符,如空格、#等,可导致服务器端无法获取正确的参数值。解决方案:将这些符号转换成浏览器可以识别的字符,转换规则是在%后面添加特殊字符ASCII码的十六进制数。题目描述:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。这道题的...原创 2019-03-20 10:52:41 · 2366 阅读 · 0 评论 -
JavaScript——二进制中1的个数
题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。function NumberOf1(n){ // write code here //自己的方法 当时考虑了各种整数转二进制数,二进制数转整数的方法。最后没做出来,对数组和字符串的操作有了更深一步的了解。 //参考方法一 大神级别的做法 //思想:把一个整数减去1,再和原整数...原创 2019-04-02 21:04:31 · 944 阅读 · 0 评论 -
JavaScript——反转链表
题目描述输入一个链表,反转链表后,输出新链表的表头。例如:输入:a->b->c->d->e输出:a<-b<-c<-d<-e反转链表示意图如下,链表的最后一个元素next指向null。/*function ListNode(x){ this.val = x; this.next = null;}*/f...原创 2019-04-08 16:17:56 · 1255 阅读 · 2 评论 -
JavaScript——合并两个有序链表
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。例如:输入:链表一:1->3->5->7 链表二:2->4->6->8输出:链表三:1->2->3->4->5->6->7->8/*function ListNode(x){ this....原创 2019-04-08 15:11:23 · 291 阅读 · 1 评论 -
JavaScript——变态跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。function jumpFloorII(number){ // write code here //青蛙跳台阶的plus版,同样从一个台阶开始,手动计算有多少种跳法,找到规律1 2 4 8..... var num=number-1; ...原创 2019-03-28 21:25:43 · 334 阅读 · 0 评论 -
JavaScript——青蛙跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。function jumpFloor(number){ // write code here //自己先写几个,多少台阶几种跳法。属于找规律的题目吧 1 2 3 5..... if(number<3) return number;/...原创 2019-03-28 17:42:00 · 810 阅读 · 1 评论 -
JavaScript——菲波那切数列
题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39function Fibonacci(n){ //自己的方法 /* if(n==0) return 0; if(n==1) return 1; var count=1; var arr=[0,1]; ...原创 2019-03-28 11:21:42 · 319 阅读 · 0 评论 -
JavaScript——旋转数组的最小数字
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。function minNumberInRotateArray(rotateArray){ //...原创 2019-03-28 09:28:14 · 239 阅读 · 0 评论 -
找规律——矩形覆盖
题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?对问题进行分析:得出规律 ;function rectCover(number){ // write code here //从number为0开始,找规律,其实还是菲波那切数列 if(number==0|...原创 2019-04-01 16:57:08 · 170 阅读 · 0 评论 -
JavaScript——数值的整数次方(快速幂算法实现)
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。function Power(base, exponent){ // write code here //方法一:调用幂函数 //return Math.pow(base,exponent); //方法二:效率优化 //...原创 2019-04-04 11:39:10 · 1601 阅读 · 0 评论 -
js——两个栈Stack实现一个队列Queue
基本概念理解:/*栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。队列(queue)是一种特殊的线性表...原创 2019-03-25 10:14:41 · 1542 阅读 · 1 评论 -
JavaScript——读取链表元素,颠倒存储
题目背景:对链表的考察。面试的时候,由于链表的创建、插入、删除等操作,代码量不是很多,相较哈希表、有向图等数据结构而言;但又考察应聘者的编程功底,为各个公司面试官所青睐。应当重视。题目描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。/*function ListNode(x){ this.val = x; // 节点的数据域 t...原创 2019-03-20 16:58:04 · 652 阅读 · 0 评论 -
二维有序数组的查找——剔除列剔除行
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。function Find(target, array){ //思路一:遍历,暴力搜索。 /* var row = array.length; v...原创 2019-03-20 16:06:36 · 198 阅读 · 0 评论 -
JavaScript——重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。首先,在没有接触二叉树这种数据结构的时候,根本不知道什么是二叉树的前序遍历和中序遍历。先了解一下二叉树遍历的基本知识。二叉树定义:二叉树是计算机...原创 2019-04-08 17:23:12 · 268 阅读 · 0 评论