LEETCODE 1265. Print Immutable Linked List in Reverse 解题思路分析

题目大意:

反向打印链表

给定一个固定链表,利用以下接口倒序打印出链表中的每个节点的值

  • ImmutableListNode: 一个链表的接口,题目将给你一个链表头元素的对象

你只能通过以下方式来访问链表

  • ImmutableListNode.printValue(): 打印当前节点的数值
  • ImmutableListNode.getNext(): 返回链表下一个节点

The input is only given to initialize the linked list internally. You must solve this problem without modifying the linked list. In other words, you must operate the linked list using only the mentioned APIs.

Follow up:

Could you solve this problem in:

  • Constant space complexity?
  • Linear time complexity and less than linear space complexity?
继续阅读
发表在 leetcode | 标签为 , , | 留下评论

LEETCODE 1258. Synonymous Sentences 解题思路分析

题目大意:

近义词句子

给你一个近义词表 synonyms 和一个句子 text,synonyms 表中是一些近义词对 ,你可以将句子 text 中每个单词用它的近义词来替换。

请你找出所有用近义词替换后的句子,按 字典序排序 后返回。

继续阅读
发表在 leetcode | 标签为 , , , , | 留下评论

LEETCODE 1257. Smallest Common Region 解题思路分析

题目大意:

最小公共区域

给你一些区域列表 regions,每个列表的第一个区域都包含这个列表内所有其他区域。

很自然地,如果区域 X 包含区域 Y,那么区域 X 比区域 Y 大。

给定两个区域 region1 和 region2,找到同时包含这两个区域的 最小 区域。

如果区域列表中 r1 包含 r2 和 r3,那么数据保证 r2 不会包含 r3。

数据同样保证最小公共区域一定存在。

继续阅读
发表在 leetcode | 标签为 , , | 留下评论

LEETCODE 1259. Handshakes That Don’t Cross 解题思路分析

题目大意:

不相交的握手

偶数 个人站成一个圆,总人数为 num_people。每个人与除自己外的一个人握手,所以总共会有 num_people / 2 次握手。

将握手的人之间连线,请你返回连线不会相交的握手方案数。

由于结果可能会很大,请你返回答案 模 10^9+7 后的结果。

继续阅读
发表在 leetcode | 标签为 , , , , | 留下评论

LEETCODE 1261. Find Elements in a Contaminated Binary Tree 解题思路分析

题目大意:

在受污染的二叉树中查找元素

给出一个满足下述规则的二叉树:

  • root.val == 0
  • 如果 treeNode.val == x 且 treeNode.left != null,那么 treeNode.left.val == 2 * x + 1
  • 如果 treeNode.val == x 且 treeNode.right != null,那么 treeNode.right.val == 2 * x + 2

现在这个二叉树受到「污染」,所有的 treeNode.val 都变成了 -1

请你先还原二叉树,然后实现 FindElements 类:

  • FindElements(TreeNode* root) 用受污染的二叉树初始化对象,你需要先把它还原。
  • bool find(int target) 判断目标值 target 是否存在于还原后的二叉树中并返回结果。
继续阅读
发表在 leetcode | 标签为 , , , | 留下评论

LEETCODE 1262. Greatest Sum Divisible by Three 解题思路分析

题目大意:

可被三整除的最大和

给你一个整数数组 nums,请你找出并返回能被三整除的元素最大和。

继续阅读
发表在 leetcode | 标签为 , , , | 留下评论

LEETCODE 1263. Minimum Moves to Move a Box to Their Target Location 解题思路分析

题目大意:

推箱子

「推箱子」是一款风靡全球的益智小游戏,玩家需要将箱子推到仓库中的目标位置。

游戏地图用大小为 n * m 的网格 grid 表示,其中每个元素可以是墙、地板或者是箱子。

现在你将作为玩家参与游戏,按规则将箱子 ‘B’ 移动到目标位置 ‘T’ :

  • 玩家用字符 ‘S’ 表示,只要他在地板上,就可以在网格中向上、下、左、右四个方向移动。
  • 地板用字符 ‘.’ 表示,意味着可以自由行走。
  • 墙用字符 ‘#’ 表示,意味着障碍物,不能通行。 
  • 箱子仅有一个,用字符 ‘B’ 表示。相应地,网格上有一个目标位置 ‘T’。
  • 玩家需要站在箱子旁边,然后沿着箱子的方向进行移动,此时箱子会被移动到相邻的地板单元格。记作一次「推动」。
  • 玩家无法越过箱子。

返回将箱子推到目标位置的最小 推动 次数,如果无法做到,请返回 -1

继续阅读
发表在 leetcode | 标签为 , , , | 留下评论

LEETCODE 1260. Shift 2D Grid 解题思路分析

题目大意:

二维网格迁移

给你一个 n 行 m 列的二维网格 grid 和一个整数 k。你需要将 grid 迁移 k 次。

每次「迁移」操作将会引发下述活动:

  • 位于 grid[i][j] 的元素将会移动到 grid[i][j + 1]。
  • 位于 grid[i][m – 1] 的元素将会移动到 grid[i + 1][0]。
  • 位于 grid[n – 1][m – 1] 的元素将会移动到 grid[0][0]。

请你返回 k 次迁移操作后最终得到的 二维网格。

继续阅读
发表在 leetcode | 标签为 , , | 留下评论

LEETCODE 1214. Two Sum BSTs 解题思路分析

题目大意:

查找两棵二叉搜索树之和

给出两棵二叉搜索树,请你从两棵树中各找出一个节点,使得这两个节点的值之和等于目标值 Target。

如果可以找到返回 True,否则返回 False。

继续阅读
发表在 leetcode | 标签为 , , , , | 留下评论

LEETCODE 1215. Stepping Numbers 解题思路分析

题目大意:

步进数

如果一个整数上的每一位数字与其相邻位上的数字的绝对差都是 1,那么这个数就是一个 步进数。例如,321 是一个步进数,而 421 不是。

给你两个整数,low 和 high,请你找出在 [low, high] 范围内的所有步进数,并返回 排序后 的结果。

继续阅读
发表在 leetcode | 标签为 , , | 留下评论