首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
剑指Offer
Always_positive
创建于2021-05-25
订阅专栏
本专栏主要存放剑指Offer的解题经验、学习方法。
等 11 人订阅
共75篇文章
创建于2021-05-25
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
剑指Offer——I. 斐波那契数列(JS实现)
题目描述 解题思路 本题如果直接使用递归进行计算,思路上是简单的,但是一定会超时,因为递归的时间复杂度太高,所以本题采用循环计算法。 所谓循环计算法,就是用两个临时变量,指向第i个元素的前两个元素,随
剑指Offer——正则表达式匹配(JS实现)
题目描述 解题思路(数学规律) 本题的主流解法包括两种,主要是递归回溯与动态规划,鉴于动态规划不易理解,本文采用递归回溯的方法进行讲解,步骤如下: 1. 判断p字符串是否为空,如果为空则继续判断字符串
剑指Offer——二维数组中的查找(JS实现)
题目描述 解题思路(数学规律) 本题主要是从二维数组的左下角的元素出发,不断的进行移动比较,因为本题给出的二维数组存在一个特点就是,从左小角的元素出发,一列的元素中,上面的元素总是比下面的元素小,一行
剑指Offer——数字序列中某一位的数字(JS实现)
题目描述 解题思路(数学规律) 本题主要是寻找数学规律,通过暴力的方法肯定是超时的,下面就简单介绍下本题的解题思路,我认为核心还是在于理解将字符串拆分为不同位数的区间。 首先判断n在哪一个区间,区间的
剑指Offer——II. 青蛙跳台阶问题(JS实现)
题目描述 解题思路一(暴力法) 当只有一级台阶的时候 F(1) = 1 只有一种跳法 当有两级台阶的时候 要么 1 + 1 要么 2 所以,F(2) = 2,此时有两种跳法 当台阶数大于2的时候,我们
剑指Offer——I.翻转单词顺序(JS实现)
题目描述 解题思路(路径循环法) 去掉字符串两侧空格 以空格为基础分割,分割之后过滤掉中间的空格 将数组反转之后再连接即可 解题代码 总结(本题给我们的启示思路) 启示一:学会使用trim去掉字符串两
剑指Offer——顺时针打印矩阵(JS实现)
题目描述 解题思路(路径循环法) 所谓的路径循环,就是路径本身存在一种循环,就是每一次顺时针是一次循环,每循环完一条边,就要修改想对应的边界条件,直到循环遍历完所有的节点。 所谓一图胜千言,有时候很多
剑指Offer——I.滑动窗口的最大值(JS实现)
题目描述 解题思路一(暴力法) 暴力法就是定义一个滑动窗口,然后通过循环不断地去移动这个窗口,直到窗口走到最后,然后分别求出每一个窗口的最大值,存到最终结果数组中,最后返回 虽然通过暴力法也能够通过,
剑指Offer——II.0~n-1中缺失的数字(JS实现)
题目描述 解题思路 本题采用的二分的思想 本题关键是使用二分查找找出中位数的下标和元素值的关系 解题代码 总结(本题给我们的启示思路) 启示一:学会使用二分查找
剑指Offer——矩阵中的路径(JS实现)
题目描述 解题思路 本题采用的DFS + 剪枝 首先通过循环遍历二维数组,找到第一个和字符串的元素相同的元素,然后使用DFS开始遍历,知道遍历到字符串的最后一个元素都相同,则返回true,反之则返回f
剑指Offer——扑克牌中的顺子(JS实现)
题目描述 解题思路 本题采用的是通过零数组来辅助判断是否是顺子 具体的过程,代码注释中都有 解题代码 总结(本题给我们的启示思路) 启示一:学会使用辅助数组来判断目标元素 启示二:学会通过集合给数组进
剑指Offer——树的子结构(JS实现)
题目描述 解题思路 本题采用两个递归互相调用的方式进行求解 一个树是否是另一个树的子结构,有3种情况 情况一:子树和当前节点完全一致 情况二:子树在左子树中 情况三:子树在右子树中 第一个递归用于控制
剑指Offer——最长不含重复字符的子字符串(JS实现)
题目描述 解题思路 本题采用哈希表 + 滑动窗口的思路 哈希表用来存储每个字符出现的次数,当单个字符出现2次的时候,用以辅助我们移动滑动窗口 首先定义一个左右指针,左指针和右指针初始时指向0,右指针不
剑指Offer——1~n整数中1出现的次数(JS实现)
题目描述 解题思路 本题如果采用暴力的方法一定会超时 本题关键在于找规律 规律如下图所示(cur>1,cur=1.cur<1三种情况) 解题代码(模拟队列) 精讲UP主 https://www.bil
剑指Offer——II. 队列的最大值(JS实现)
题目描述 解题思路 本题采用的是模拟队列的思想 难点:在于push的时候,要确保模拟队列中保持一个降序的顺序,头部始终是最大值,新加入的value放到最后面,所有比value小的pop掉 最后返回模拟
剑指Offer——数组中的逆序对(JS实现)
题目描述 解题思路 我刚开始看到本题,首先想到的是暴力解法,也就是通过for循环进行不断遍历,结果超时。 看了题解才知道,解决逆序对的问题,往往通过归并排序 本题考查的本质还是归并排序,只是在归并排序
剑指Offer——旋转数组的最小数字(JS实现)
题目描述 解题思路(序列化) 我刚开始看到本题,我发现找到比数组第一个元素小的第一个元素返回不就行了,没找到就返回第一个,没想到竟然成功AC 看了题解后,采用了二分查找的思想,第一个指针指向第一个元素
剑指Offer——机器人的运动范围(JS实现)
题目描述 解题思路(序列化) 看到本题我首先想到的是两层嵌套循环,计算下标和与k的关系不就行了,果然不会那么简单,因为有的元素,虽然下标和符合条件,但是却不符合条件,原因是一个格子被访问到,周围必须得
剑指Offer——在排序数组中查找数字I(JS实现)
题目描述 解题思路(序列化) 看到本题我首先想到的是二分查找 初始化左指针指向下标0,右指针指向下标nums.length - 1; 首先找到中位数下标,将中位数下标对应的值和target进行比较,如
剑指Offer——序列化二叉树(JS实现)
题目描述 解题思路(序列化) 本题分为两个部分:一是序列化二叉树,二是反序列化二叉树。 序列化二叉树:将以可二叉树,变成一个字符串,这个字符串本人刚开始以为是按照题目给的例子得是层序遍历才行,后来看了
下一页