剑指offer专项
四灵妖
这个作者很懒,什么都没留下…
展开
-
链表类题目分析
一:递推法 递推阶段: 每次传入 head.next ,以 head == null(即走过链表尾部节点)为递归终止条件,此时直接返回。 回溯阶段: 层层回溯时,将当前节点值加入列表,即tmp.push(head.val),最终返回tmp. 执行时,相当于函数调用函数,函数调用函数,…,直到触发终止条件。回溯(即返回时),前面的那些函数才算“执行完毕”,才可以执行下面的 tmp.add(head.val),从最后面一个节点开始依次回溯push。 function reversePrint(head) {.原创 2020-07-25 17:54:06 · 125 阅读 · 0 评论 -
剑指 Offer 11. 旋转数组的最小数字
解法:找规律 小于前一个元素的元素是最小的元素,如果没有找到就是第一个元素。(该数组最开始的0个元素搬到数组的末尾) var minArray = function(numbers) { for (var i=0;i<numbers.length;i++){ if(numbers[i]>numbers[i+1]){ return numbers[i+1] } } retu.原创 2020-07-22 16:52:43 · 63 阅读 · 0 评论 -
剑指数组类算法题目总结
题目描述:JZ50数组中重复的数字 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 function duplicate(numbers, duplication) { var len=numbers.length; if(numbers == null |原创 2020-07-22 15:57:52 · 100 阅读 · 0 评论