
JS数据结构
czm_orange
认真学习|认真工作|
展开
-
剑指offer11 Javascript版本——二进制中1的个数
题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。题解:搬运牛客大佬的方法:如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。举个例子:一个二进制数1100,从右边数起第三位是处于最右边的一个1。减去1后,第三位变成...原创 2020-03-06 21:17:16 · 171 阅读 · 0 评论 -
剑指offer10 Javascript版本——矩阵覆盖
题目描述我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?比如n=3时,2*3的矩形块有3种覆盖方法:本质上还是一个斐波那契数列。n = 1 的时候只能横着覆盖,一种n = 2 的时候可以横着和竖着覆盖,两种n = 3 的时候第三级横着覆盖,用了一级,剩下 n = 2,有两种覆盖方法第三季竖着覆盖,用了...原创 2020-03-06 20:59:27 · 212 阅读 · 0 评论 -
剑指offer8&9 Javascript版本——跳台阶和变态跳台阶
跳台阶题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。题解跳n级台阶相当于跳n-1级台阶和跳n-2级台阶的方法的总和,如果将跳n级台阶的方法看作是f(n),n-1台阶的方法是f(n-1),n-2台阶的方法是f(n-2),则f(n) = f(n-1) + f(n-2)本质上也是一个斐波那契数列。function...原创 2020-03-06 20:43:31 · 182 阅读 · 0 评论 -
算法中级——来源freecodecamp
算法中级——freecodecamp范围内的数字求和区分两个数组瞄准和消灭罗密欧与朱丽叶短线连接格式儿童黑话搜索和替换DNA 配对丢失的字母集合排序转换HTML实体求斐波那契数组中的奇数之和范围内的数字求和给出一个含有两个数字的数组,我们需要写一个函数,让它返回这两个数字间所有数字(包含这两个数字)的总和。注意,较小数不一定总是出现在数组的第一个元素。方法一:找出最大最小值,然后从小+1...原创 2020-03-04 22:27:40 · 1152 阅读 · 0 评论 -
剑指offer7 Javascript版本——斐波那契数列
题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39题解:斐波那契数列的标准公式为:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)function Fibonacci(n){ // write code here let pre = 0; ...原创 2020-03-03 23:01:24 · 188 阅读 · 0 评论 -
剑指offer6 Javascript版本——旋转数组的最小数字
题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。题解:方法一:利用数组的reduce方法,找出数组中的最小值。function minNumberI...原创 2020-03-03 22:35:49 · 171 阅读 · 0 评论 -
剑指offer5 Javascript版本——用两个栈实现队列
题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。题解:栈的特性是:后入先出。根据题目提示,使用 2 个栈即可。一个栈inStack用来存储插入队列的数据,一个栈outStack用来从队列中取出数据。算法分为入队和出队过程。入队过程:将元素放入 inStack 中。出队过程:outStack 不为空:弹出元素outStack 为空:将 i...原创 2020-03-03 21:50:14 · 158 阅读 · 0 评论 -
剑指offer4 Javascript版本——重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。题解:思路:根据中序遍历和前序遍历可以确定二叉树,具体过程为:根据前序序列第一个结点确定根结点根据根结点在中序序列中的位置分割出左右两个子序列...原创 2020-03-02 21:33:46 · 309 阅读 · 1 评论 -
剑指offer3 Javascript版本——从尾到头打印链表
题目描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。题解:方法一:将链表存入一个数组之中,然后进行数组的反转。/*function ListNode(x){ this.val = x; this.next = null;}*/function printListFromTailToHead(head){ // write code her...原创 2020-03-02 21:15:14 · 159 阅读 · 0 评论 -
JS函数式编程——来源freecodecamp
Javascript函数式编程使用 map 方法从数组中提取数据在原型上实现 map 方法(原生实现map方法)使用 filter 方法从数组中提取数据在原型上实现 filter 方法(原生实现filter方法)使用 slice 方法返回数组的一部分使用 slice 而不是 splice 从数组中移除元素使用 concat 方法组合两个数组使用 concat 而不是 push 将元素添加到数组的末...原创 2020-02-29 16:13:07 · 1500 阅读 · 0 评论 -
JS算法基础
JS算法基础将摄氏温度转换成华氏温度翻转字符串数字的阶乘查找字符串中最长的单词返回数组中最大的数字算法基础:检查字符串的结尾重复字符串截断字符串发现者与看护者真假测试——来源freecodecamp将摄氏温度转换成华氏温度将摄氏度转换为华氏度的算法为:摄氏度 × 9/5 + 32输入参数 celsius代表一个摄氏温度值。请你根据上述转换公式,将已定义好的 fahrenheit变量赋值为对...原创 2020-02-28 15:23:49 · 786 阅读 · 0 评论 -
JS数据结构基础
使用数组存储数据集合——来源freecodecamp以下是数组(Array)数据结构的最简单的实现例子。这是一个一维数组(one-dimensional array),它只有一层,或者说在它里面没有包含其它的数组结构。你可以看到它里面包含了布尔值(booleans)、字符串(strings)、数字(numbers)以及一些其他的 JavaScript 语言中合法的数据类型:let simpl...原创 2020-02-27 16:02:27 · 1086 阅读 · 0 评论