LEETCODE 208. Implement Trie (Prefix Tree) 解题思路分析

题目大意:

实现 Trie (前缀树)

实现一个 Trie (前缀树),包含 insertsearch, 和 startsWith 这三个操作。

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

LEETCODE 402. Remove K Digits 解题思路分析

题目大意:

移掉K位数字

给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。

注意:

  • num 的长度小于 10002 且 ≥ k。
  • num 不会包含任何前导零。
继续阅读
发表在 leetcode | 标签为 , , , , , | 留下评论

LEETCODE 540. Single Element in a Sorted Array 解题思路分析

题目大意:

有序数组中的单一元素

给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。

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

LEETCODE 733. Flood Fill 解题思路分析

题目大意:

图像渲染

有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。

给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newColor,让你重新上色这幅图像。

为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的像素点与他们对应四个方向上像素值与初始坐标相同的相连像素点,……,重复该过程。将所有有记录的像素点的颜色值改为新的颜色值。

最后返回经过上色渲染后的图像。

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

LEETCODE 997. Find the Town Judge 解题思路分析

题目大意:

找到小镇的法官

在一个小镇里,按从 1 到 N 标记了 N 个人。传言称,这些人中有一个是小镇上的秘密法官。

如果小镇的法官真的存在,那么:

  1. 小镇的法官不相信任何人。
  2. 每个人(除了小镇法官外)都信任小镇的法官。
  3. 只有一个人同时满足属性 1 和属性 2 。

给定数组 trust,该数组由信任对 trust[i] = [a, b] 组成,表示标记为 a 的人信任标记为 b 的人。

如果小镇存在秘密法官并且可以确定他的身份,请返回该法官的标记。否则,返回 -1。

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

LEETCODE周赛188 赛后总结及解题思路分析

LEETCODE 1441. Build an Array With Stack Operations

难度:简单

考点:栈,数组,List的概念

LEETCODE 1441. Build an Array With Stack Operations 解题思路分析

继续阅读
发表在 leetcode | 标签为 , , | 2条评论

LEETCODE 1441. Build an Array With Stack Operations 解题思路分析

题目大意:

用栈操作构建数组

给你一个目标数组 target 和一个整数 n。每次迭代,需要从  list = {1,2,3…, n} 中依序读取一个数字。

请使用下述操作来构建目标数组 target :

Push:从 list 中读取一个新元素, 并将其推入数组中。
Pop:删除数组中的最后一个元素。
如果目标数组构建完成,就停止读取更多元素。
题目数据保证目标数组严格递增,并且只包含 1 到 n 之间的数字。

请返回构建目标数组所用的操作序列。

题目数据保证答案是唯一的。

继续阅读
发表在 leetcode | 标签为 , , , | 一条评论

LEETCODE 1442. Count Triplets That Can Form Two Arrays of Equal XOR 解题思路分析

题目大意:

形成两个异或相等数组的三元组数目

给你一个整数数组 arr 。

现需要从数组中取三个下标 i、j 和 k ,其中 (0 <= i < j <= k < arr.length) 。

a 和 b 定义如下:

  • a = arr[i] ^ arr[i + 1] ^ … ^ arr[j – 1]
  • b = arr[j] ^ arr[j + 1] ^ … ^ arr[k]

注意:^ 表示 按位异或 操作。

请返回能够令 a == b 成立的三元组 (ij , k) 的数目。

继续阅读
发表在 leetcode | 标签为 , , , | 一条评论

LEETCODE 1443. Minimum Time to Collect All Apples in a Tree 解题思路分析

题目大意:

收集树上所有苹果的最少时间

给你一棵有 n 个节点的无向树,节点编号为 0 到 n-1 ,它们中有一些节点有苹果。通过树上的一条边,需要花费 1 秒钟。你从 节点 0 出发,请你返回最少需要多少秒,可以收集到所有苹果,并回到节点 0 。

无向树的边由 edges 给出,其中 edges[i] = [fromi, toi] ,表示有一条边连接 from 和 toi 。除此以外,还有一个布尔数组 hasApple ,其中 hasApple[i] = true 代表节点 i 有一个苹果,否则,节点 i 没有苹果。

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

LEETCODE 1444. Number of Ways of Cutting a Pizza 解题思路分析

题目大意:

切披萨的方案数

给你一个 rows x cols 大小的矩形披萨和一个整数 k ,矩形包含两种字符: ‘A’ (表示苹果)和 ‘.’ (表示空白格子)。你需要切披萨 k-1 次,得到 k 块披萨并送给别人。

切披萨的每一刀,先要选择是向垂直还是水平方向切,再在矩形的边界上选一个切的位置,将披萨一分为二。如果垂直地切披萨,那么需要把左边的部分送给一个人,如果水平地切,那么需要把上面的部分送给一个人。在切完最后一刀后,需要把剩下来的一块送给最后一个人。

请你返回确保每一块披萨包含 至少 一个苹果的切披萨方案数。由于答案可能是个很大的数字,请你返回它对 10^9 + 7 取余的结果。

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