剑指Offer
gyypwrs
这个作者很懒,什么都没留下…
展开
-
剑指Offer(JavaScript):重建二叉树
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 思路:见代码 slice方法:slice(start,end)从数组下标start开始选取元素直到start(不包含end) function reConstructBinaryTree(pre, vin) { if(pre.length===0||vin.原创 2020-05-20 22:31:50 · 95 阅读 · 0 评论 -
剑指Offer(JavaScript):从尾到头打印链表
题目描述: 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 思路一:使用unshift unshift:unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。 function printListFromTailToHead(head) { let arr=[]; while(head!=null){ arr.unshift(head.val); head=head.next; } return arr; }原创 2020-05-20 22:15:29 · 140 阅读 · 0 评论 -
剑指Offer(JavaScript):替换空格
题目描述: 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 思路一: 使用replace() function replaceSpace(str) { return str.replace(/ /g,'%20'); } 思路二: 使用split()+join() function replaceSpace(str) { return str.split(' ').join原创 2020-05-18 18:56:14 · 113 阅读 · 0 评论 -
剑指Offer(JavaScript):二维数组中的查找
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路一:暴力求解 时间复杂度:O(mn) function Find(target, array){ let row=array.lenght; let col=array[0].lenght; for(let i=0;i<row;i++){ for(let j=0;j<col;j++原创 2020-05-17 16:39:36 · 127 阅读 · 0 评论