js矩阵

网友投稿 278 2022-09-04

js矩阵

螺旋矩阵:

export default(arr)=>{ //处理每一圈的数据遍历过程 let map=(arr,r=[])=>{ for(let i=0,len=arr.length;i=0;i--){ r.push(arr[i].shift()) } if(arr.length){ return map(arr,r) }else{ return r } } return map(arr,[])}

旋转图像:

export default(arr)=>{ // 获取n的维度 let vecor=arr.length //垂直反转 for(let i=0,len=vecor/2;i

二叉树:

对称的二叉树:

//二叉树的节点 class Node{ constructor(val){ this.val=val this.left=this.right=undefined } } class Tree{ constructor(data){ //临时存储所有节点,方便寻找父子节点 let nodeList=[] //顶节点 let root for(let i=0,len=data.length;i0){ //第一层 //计算当前节点属于哪一层 let n=Math.floor( Math.sqrt(i+1)) //记录当前层的起始点 let q=Math.pow(2,n)-1 //记录上一层的起始点 let p=Math.pow(2,n-1)-1 //找到当前节点的父节点 let parent=nodeList[p+Math.floor((i-q)/2)] //将当前节点和上一层的父节点做关联 if(parent.left){ parent.right=node }else{ parent.left=node } } } root=nodeList.shift() nodeList.length=0 return root } //判断是不是对称 static isSymmetry(root){ if(!root){ return true } let walk=(left,right)=>{ if(!left&&!right){ return true } if((left&&!right)||(!left&&right)||(left.val!==right.val)){ return false } return walk(left.left,right.right)&&walk(left.right,right.left) } return walk(root.left,root.right) } } export default Tree export{ Node }

class Node{ constructor(val){ this.val=val this.left=this.right=undefined }}class Tree{ constructor(data){ let root=new Node(data.shift()) //遍历所有的数据,逐渐插入到当前这颗搜索树中 data.array.forEach(item => { this.insert(root,item) }); return root } insert(node,data){ if(node.val>data){ if(node.left===undefined){//判断是不是左节点 node.left=new Node(data) }else{ this.insert(node.left,data) } }else{ if(node.right===undefined){ node.right=new Node(data) }else{ this.insert(node.right,data) } } } static walk(root){ if(!root.left&&!root.right){ return true }else if((root.left&&root.valroot.right.val){ return false }else{ return Tree.walk(root.left)&&Tree.walk(root.right) } }}export default Treeexport{ Node}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:数英DIGITALING:「抖音开新日」营销链路追踪,顶级电商IP如何助力新品GMV爆发!
下一篇:现代营销,常常需要解决的3个问题有哪些?(什么主要就是要解决如何进行营销的问题)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~