每周算法NO.1
1367. 二叉树中的链表
原题链接:1367. Linked List in Binary Tree
简要描述:
给定一个链表、一个二叉树,判断二叉树中是否存在链表路径。
解题思路:
找出所有与链表头节点想等的二叉树节点
从这些节点开始分别向下遍历,判断节点值与链表值是否想等
public class LinkedSubPath { |
874. 模拟行走机器人
原题链接:874. Walking Robot Simulation
题目简述:
平面无限大,机器人从原点(0,0)
向北按指令移动,指令如下:
-2
: 左转90度
-1
: 右转90度
1<= k <= 9
: 向当前方向移动k格
平面上存在障碍物,障碍物坐标列表obstacle
,遇到障碍物会停留在障碍物的前一个网格方块上,并继续执行下一个命令。
求距离原点的最远距离的平方
note:
北 +y
东 +x
南 -y
西 -x
原点可能存在障碍物
解题思路:
模拟行走过程
通过 0, 1, 2, 3分别代表各个方向
行动时判断当前方向是否存在障碍物,确定最终行走位置
public class WalkRobot { |
725. 分隔链表
原题链接:725. 分隔链表
题目简述:给定一个链表和数字k(1<=k<=50),要求将链表均分为k个部分,每个部分长度差不超过1
解题思路:
求出链表的长度
计算各个部分的长度
遍历链表,获取每个部分的head
设置分隔,将分隔点的next设置为null
public class SplitLinkedList { |
官方题解
class Solution { |
- 本文作者: Naskete
- 本文链接: https://Naskete.github.io/2024/09/08/algorithm/weekly-algorithm-no.1/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!