![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
文章平均质量分 59
绿洲213
springboot3只支持jdk17
展开
-
剑指 Offer 13. 机器人的运动范围
剑指 Offer 13. 机器人的运动范围题目 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?解题思路: 本题与 矩阵中的路径 类似,原创 2022-03-16 22:19:45 · 62 阅读 · 0 评论 -
剑指 Offer 12. 矩阵中的路径
剑指 Offer 12. 矩阵中的路径题目给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。例如,在下面的 3×4 的矩阵中包含单词 “ABCCED”(单词中的字母已标出)。解题思路:本问题是典型的矩阵搜索问题,可使用 深度优先搜索(DFS)+ 剪枝原创 2022-03-16 22:18:50 · 77 阅读 · 0 评论 -
算法-day6
剑指 Offer 09. 用两个栈实现队列题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )解题思路:入队操作在栈A中执行,出队操作在栈B中执行栈 A 用于加入队尾appendTail()操作,栈 B 用于将元素倒序,从而实现删除队首元素deleteHead()操作加入队尾 appendTail()函数: 将数字原创 2022-03-16 13:40:35 · 63 阅读 · 0 评论 -
算法-day5
文章目录剑指 Offer 06. 从尾到头打印链表题目解题思路:算法流程:复杂度分析:剑指 Offer 07. 重建二叉树题目解题思路:复杂度分析:剑指 Offer 06. 从尾到头打印链表题目输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)解题思路:辅助栈法链表特点: 只能从前至后访问每个节点。题目要求: 倒序输出节点值。这种 先入后出 的需求可以借助 栈 来实现。算法流程:入栈: 遍历链表,将各节点值 push 入栈。借助 LinkedList 的addLas原创 2022-03-15 22:45:04 · 678 阅读 · 0 评论 -
算法-day4
面试题05. 替换空格题目请实现一个函数,把字符串 s 中的每个空格替换成"%20"。算法流程:初始化一个 StringBuilder ,记为 res ;遍历列表 s 中的每个字符 c ;当 c 为空格时:向 res 后添加字符串 “%20” ;当 c 不为空格时:向 res 后添加字符 c ;将列表 res 转化为字符串并返回。复杂度分析:时间复杂度 O(N) : 遍历使用 O(N),每轮添加(修改)字符操作使用 O(1);空间复杂度 O(N) : Python 新建的 l原创 2022-03-15 19:43:41 · 48 阅读 · 0 评论 -
算法-day3
剑指 Offer 04. 二维数组中的查找题目在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。注意事项防止输入空指针复杂度分析时间复杂度:O(n+m)。访问到的下标的行最多增加 n 次,列最多减少 m 次,因此循环体最多执行 n + m 次。空间复杂度:O(1)。//从左下角开始查找class Solution{ public原创 2022-03-15 16:49:44 · 49 阅读 · 0 评论 -
算法-day2
面试题3(一):找出数组中重复的数字题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2, 3, 1, 0, 2, 5, 3},那么对应的输出是重复的数字2或者3。注意事项:判断输入数组是否为空,且数组长度是否小于等于0判断数组里的所有数字是否都在0到n-1的范围内复杂度分析:时间复杂度 O(n) : 遍历数组使用 O(N) ,每原创 2022-03-15 16:46:15 · 44 阅读 · 0 评论 -
算法刷题-day1
文章目录求链表中倒数第k个节点思路注意事项:求链表中倒数第k个节点思路用两个指针,第一个指针先走k-1步然后两个指针一起走。当第一个指针走到尾节点的时候,第二个指针指向的就是倒数第k个节点。注意事项:判断空指针和k=0的情况考虑链表长度小于k的情况typedef struct{ ElemType data; struct ListNode *next;} ListNode, *LinkList;ListNode *FindK(ListNode *pHead,原创 2022-03-14 20:58:12 · 1129 阅读 · 0 评论