首页
沸点
课程
AI Coding
数据标注
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
yyz的leetcode刷题笔记
yyz
创建于2022-07-16
订阅专栏
记录刷题笔记
暂无订阅
共14篇文章
创建于2022-07-16
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
剑指 Offer 32 - III. 从上到下打印二叉树 III #二叉树的Z形遍历
算法思路: 题目的要求是奇数层从左到右遍历,偶数层从右向左遍历,所以有 比如这里,先遍历第一层,把 $1$ 出队列,因为是从左向右的遍历,那么就需要先把左节点 $2$ 加入队列,再把右节点 $3$ 加
剑指 Offer 50. 第一个只出现一次的字符
解题思路 先遍历一边s,统计各字符出现的次数 找出第一个出现次数为1的字符 这里很明显是一个Key-Value关系,故有以下几种思路 可以用HashMap来记录字符和出现的次数是否为1次,再遍历一边s
剑指 Offer 11. 旋转数组的最小数字#Java
解题思路 有序数组中的查找,优先考虑二分法查找,二分法的关键在于如何通过比较缩小查找范围。 数组$[3,4,5,1,2]$ 可以分为左右两个数组——左数组$[3,4,5]$和右数组$[1,2]$,我们
剑指 Offer 04. 二维数组中的查找#Java实现
解题思路 分析题目给出的条件——数组+有序,所以第一时间还是想到使用二分法来进行查找。 观察题目给出的条件,每一行都是从左到右的递增,每一列都是从上到下的递增。 如果从左上角出发 很明显,并不能确定t
剑指 Offer 53 - II. 0~n-1中缺失的数字 #Java #二分法
解题思路 看到有序数组,首先想到二分法 分析题目,实际要我们找的就是不等于对应值的第一个索引的值,即 nums[mid] != mid 所以可以直接用二分法 如果 nums[mid] == mid ,
剑指 Offer 53 - I. 在排序数组中查找数字 I #Java #二分查找
解题思路 二分法 有序数组中查找数字,很明显要我们使用二分法,找到目标数字后,可以向两边遍历统计目标数字出现的次数,但是如果目标数字出的次数很多,代码的效率会从O(logN)退化到O(N),所以这里我
剑指 Offer 03. 数组中重复的数字 #原地交换 #O(1)空间复杂度
题目分析 找出重复的数字很简单,遍历放进Set就得到答案了,但是很明显这不是题目想要的答案。题中给出了一个限定条件: 0 ~ n-1,这不刚好就是数组的索引范围,于是利用这个条件可以有如下解法: 假设
剑指 Offer 58 - II. 左旋转字符串 #java #循环数组
解题思路 截取子串,拼接到末尾。 解法一:数组 唯一有意思的点就是 res[i] = sarr[(n+i)%sarr.length];这里使用了取模来实现数组的循环。
剑指 Offer 05. 替换空格 # java #StringBuilder
解题思路 把String转化为数组,遍历字符数组,遇到空格就改为"%20"即可。 解法一:StringBuilder 声明一个StringBuilder来拼接字符串,调用String的toCharAr
剑指 Offer 35. 复杂链表的复制 #Java 暴力解、回溯法
解题思路 题目分析:这道题的关键在于每个节点都包含一个random指针,指向随机的节点,而需要给random复制的时候,random所指向的复制节点很有可能还没有创建,如何处理random指针问题是这
剑指 Offer 24. 反转链表
解题思路 定义三个指针pre、cur、nex,分别指向前一个节点、当前节点、下一个节点,让当前节点指向前一个节点,然后遍历整个链表即可完成反转。 代码
剑指 Offer 06. 从尾到头打印链表(Java)
剑指 Offer 06. 从尾到头打印链表 解题思路 先确定数组的长度,在逆序装进数组就可以了。 solution: 先遍历链表一遍确定数组长度 再遍历一边逆序装进数组 代码
剑指 Offer 30. 包含min函数的栈(Java)
剑指 Offer 30. 包含min函数的栈 解题思路 难点:栈的push和pop时间复杂度本身就是O(1),关键在于如何实现min。 思路: 一个数据栈栈存储原数据,再用一个辅助栈来维护最小值 数据
剑指 Offer 09. 用两个栈实现队列 (Java实现)
剑指 Offer 09. 用两个栈实现队列 解题思路 这道题的需求就是要使用双栈结构来实现一个队列的增删操作。 栈的特点是:FILO,先进后出,即只能在栈的一端操作数据。 队列的特点是:FIFO,先进