剑指offer
I have a lemon
这个作者很懒,什么都没留下…
展开
-
剑指offer(JavaScript)刷题记录10—— 矩阵中的路径
剑指 Offer 12. 矩阵中的路径难度中等给定一个m x n二维字符网格board和一个字符串单词word。如果word存在于网格中,返回true;否则,返回false。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。例如,在下面的 3×4 的矩阵中包含单词 "ABCCED"(单词中的字母已标出)。示例 1:输入:board = [["A","B...原创 2021-04-16 15:23:41 · 189 阅读 · 0 评论 -
剑指offer(JavaScript)刷题记录09—— 旋转数组的最小数字
剑指 Offer 11. 旋转数组的最小数字难度简单把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组[3,4,5,1,2]为[1,2,3,4,5]的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0这个题的思路是用双指针法查找,然后考虑一些特殊情况/** * @param {number[]} ...原创 2021-02-07 16:36:00 · 86 阅读 · 0 评论 -
剑指offer(JavaScript)刷题记录08—— 青蛙跳台阶问题
剑指 Offer 10- II. 青蛙跳台阶问题难度:简单一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个n级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:21示例 3:输入:n = 0输出:1提示:0 <= n <= 100这道题就是斐波那契数列的应用:设跳...原创 2021-02-06 16:53:45 · 107 阅读 · 0 评论 -
剑指offer(JavaScript)刷题记录07—— 斐波那契数列
剑指 Offer 10- I. 斐波那契数列难度简单写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项(即F(N))。斐波那契数列的定义如下:F(0) = 0,F(1)= 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输...原创 2021-02-06 16:44:17 · 122 阅读 · 0 评论 -
剑指offer(JavaScript)刷题记录06——用两个栈实现队列
剑指 Offer 09. 用两个栈实现队列难度简单用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回 -1 )示例 1:输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:...原创 2021-02-06 15:41:11 · 96 阅读 · 0 评论 -
剑指offer(JavaScript)刷题记录05——重建二叉树
剑指 Offer 07. 重建二叉树难度中等输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder =[3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7限制:0 <= 节点个数 <= 5000注意:本题与主站 105 题重复:h..原创 2021-02-03 14:46:12 · 77 阅读 · 0 评论 -
剑指offer(JavaScript)刷题记录04——从尾到头打印链表
剑指 Offer 06. 从尾到头打印链表难度:简单输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000这题的思路就是利用栈存每个节点的值/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; *..原创 2021-02-01 20:10:39 · 87 阅读 · 0 评论 -
剑指offer题目分类
数据结构类题目LinkedList 003-从尾到头打印链表 014-链表中倒数第k个结点 015-反转链表 016-合并两个或k个有序链表 025-复杂链表的复制 036-两个链表的第一个公共结点 055-链表中环的入口结点 056-删除链表中重复的结点 Tree 004-重建二叉树 017-树的子结构 018-二叉树的镜像 022-从上往下打印二叉树 023-二叉搜索树的后序遍历序列 024-二叉树中和为某一值的路径 026-二叉搜索树与转载 2021-02-01 20:08:10 · 119 阅读 · 0 评论 -
剑指offer(JavaScript)刷题记录03——替换空格
剑指 Offer 05. 替换空格难度:简单请实现一个函数,把字符串s中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."限制:0 <= s 的长度 <= 10000最容易想到的的方法是创建一个新的字符串:/** * @param {string} s * @return {string} */var replaceSpace = function(s) {...原创 2021-01-31 20:53:43 · 69 阅读 · 0 评论 -
剑指offer(JavaScript)刷题记录02——二维数组中的查找
剑指 Offer 04. 二维数组中的查找难度中等214在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [1.原创 2021-01-31 19:38:08 · 124 阅读 · 0 评论 -
剑指offer(JavaScript)刷题记录01——数组中重复的数字
剑指 Offer 03. 数组中重复的数字难度:简单找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 限制:2 <= n <= 100000解题思路:我用了三种方法来解题:哈希表,排序查重,原数组上改动这三种方法也是原创 2021-01-27 21:45:54 · 121 阅读 · 0 评论