自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一叶的博客

喜欢文章就关注公众号“web前端进阶之路”吧!

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

原创 前端算法——数组移动

给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。var rotate = function(nums, k) { // 传递的是数组的引用,需要改变引用的数组而不是返回新数组 // 并且需要注意k大于长度的时候依旧需要变换! k=k%nums.length if(nums.length>1){ nums.splice(0...

2020-04-21 11:14:28 251

原创 数学——不用额外变量交换两个整数的值

var line=readline().split(' ').map(Number)var a=line[0]var b=line[1]// 使用a保存a和b的差a=b-a;//3-2=1// b=b-两数之差b=b-a;//3-1=2// a=两数之差+原来的aa=a+b;//1+2=3console.log(a,b)...

2020-04-17 21:35:45 193

原创 数据结构——两个栈构建一个队列

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。// 按照题意,那么应该要创建两个数组// 然后push是添加到一个数组的末尾// 然后pop的话,需要借助另一个数组,把之前的队列清空,然后才能弹出末尾元素var inStack = [],outStack = [];function push(node) { // write code her...

2020-04-16 19:22:30 222

原创 前端基础笔记——构建乘积数组

给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。(注意:规定B[0] = A[1] * A[2] * ... * A[n-1],B[n-1] = A[0] * A[1] * ... * A[n-2];)* 直接遍历也是可以的,但是时间复杂度为O...

2020-04-15 21:07:20 150

原创 前端——二叉树编程题两道

1. 操作给定的二叉树,将其变换为源二叉树的镜像。function Mirror(root){ // write code here if(!root) return null; var left,right; if(root.right){ left=Mirror(root.right); } if(root.left){ ...

2020-04-15 18:33:10 260

原创 前端基础笔记——求整数之和(多种方法)

写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。function Add(num1, num2){ // 第一种方式,也使用了加号,但是在eval函数内 // return eval(`num1+num2`) // 第二种方式,通过把数字转换为二进制,然后切割成数组,把数组遍历进行计算 // 但是第二种方式遇到负数就抓瞎了。。 ...

2020-04-14 23:14:17 514

原创 前端基础笔记——在正则中要保留分隔符要使用()

解析加减法运算如:输入字符串:"1+2+3" 输出:"6"输入字符串:"1+2-3" 输出:"0"输入字符串:"-1+2+3" 输出:"4"输入字符串:"1" 输出:"1"输入字符串:"-1" 输出:"-1"已知条件:输入的运算都是整数运算,且只有加减运算要求:输出为String类型,不能使用内建的eval()函数// 在正则中,使用括号()会保留该分隔符!!!var old...

2020-04-08 17:04:54 219

原创 前端基础笔记——字符串压缩

对字符串进行RLE压缩,将相邻的相同字符,用计数值和字符值来代替。例如:aaabccccccddeee,则可用3a1b6c2d3e来代替。// 由于压缩条件是相邻,所以要遍历一遍var str=readline();var mystr='';var tem=str[0];var num=0for(var i=0;i<str.length;i++){ if(str...

2020-04-07 18:03:53 661

原创 前端基础笔记——字符串最小变换次数(使用递归)

给定两个字符串,已知可以使用三种方式进行变换1. 插入一个字符2. 删除一个字符3. 更改一个字符请设计一个算法,找到两个字符串之间的经历几次最小变换,可以字符串1转换成字符串2// 假定变换规则是 1. 串1长度大于串2的时候,删除字符// 2. 串1长度小于串2的时候,添加字符// 3. 串1长度等于串2的时候,替换字符// 如果仅仅是这种思路,那么只能通过50%。。。va...

2020-04-07 16:56:29 625

原创 前端基础笔记——千分数格式化(包含小数)

function formatToThousands(num){ num=String(num); var arr=num.indexOf('.')!=-1?num.split('.'):num; var str="" var len=arr.length>1?arr[0].length:arr.length; num=arr.length&gt...

2020-04-07 00:51:18 408

原创 前端基础笔记——短字符串

给定任意一个较短的子串,和另一个较长的字符串,判断短的字符串是否能够由长字符串中的字符构建出来,且长串中的每个字符只能用一次。// 思路很简单,关键在于,不要多次使用indexOf,那么每次都是n的时间复杂度// 所以会通过率很低,解决办法就是使用字典存储来代替长长的字符串,这样就可以不去使用indexOfvar line=readline().split(' ')var small=...

2020-04-06 23:25:25 208

原创 前端基础笔记——英文字符串排序(包含非字母)

编写一个程序,将输入字符串中的字符按如下规则排序。规则 1 :英文字母从 A 到 Z 排列,不区分大小写。如,输入: Type 输出: epTy规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。如,输入: BabA 输出: aABb规则 3 :非英文字母的其它字符保持原来的位置。如,输入: By?e 输出: Be?y// 思路,一个数组存储字母(排序后的)// 一个...

2020-04-03 13:22:57 1061

原创 前端基础笔记——斐切那波数列(复杂度O(n))

// 如果使用之前那种调用函数的方式是不行的。。一直return func(m-1)+func(m-2),复杂度不止O(n),因为很多计算重复了,例如func(1)会用到两次var num=parseInt(readline())var m=[1,1];for(var i=2;i<=num;i++){ var tem=m[0]+m[1]; m.shift(); ...

2020-04-02 20:30:22 637

原创 前端基础笔记——数组变换

给定一个数组arr,请将数组调整为依次相邻的数字,总是先<=、再>=的关系,并交替下去。比如数组中有五个数字,调整成[a,b,c,d,e],使之满足a<=b>=c<=d>=e。61 2 3 4 5 61 3 2 5 4 6// 思路:观察规律就是,如果是有序的数组,那么只要每隔两个数进行交换,那就可以了// 如果数组长度<=2,那么就不改变f...

2020-04-01 23:37:45 472

原创 前端基础笔记——子串的最大累加和(时间复杂度为O(n))

给定一个数组arr,返回子数组的最大累加和例如,arr = [1, -2, 3, 5, -2, 6, -1],所有子数组中,[3, 5, -2, 6]可以累加出最大的和12,所以返回12.[要求]时间复杂度为O(n)O(n),空间复杂度为O(1)O(1)// 注意:字符串和为负数时就看下一个索引!var len=parseInt(readline());var arr=readline...

2020-04-01 21:15:26 339

原创 前端数学——求阶乘的最低位为1的索引

* 给定一个非负整数N,如果用二进制数表达N!的结果,返回最低位的1在哪个位置上,认为最右的位置为位置0* `首先使用一种笨方法。。通过率低 50%`// 首先使用笨方法求阶乘var num=parseInt(readline());function mynum(num){ if(num==1){ return 1; }else{ retur...

2020-04-01 18:58:17 220

原创 前端基础笔记——求连续子数组的最大和(简单递归)

一个非空整数数组,选择其中的两个位置,使得两个位置之间的数和最大。如果最大的和为正数,则输出这个数;如果最大的和为负数或0,则输出0var arr=readline().split(',').map(Number);var len=arr.length;var max=0;// 第一层是窗口大小,第二层是起始索引for(var i=1;i<=len;i++){ for(v...

2020-04-01 00:05:10 291

空空如也

空空如也

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

TA关注的人

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