LEETCODE 1008. Construct Binary Search Tree from Preorder Traversal 解题思路分析

题目大意:

先序遍历构造二叉树

返回与给定先序遍历 preorder 相匹配的二叉搜索树(binary search tree)的根结点。

(回想一下,二叉搜索树是二叉树的一种,其每个节点都满足以下规则,对于 node.left 的任何后代,值总 < node.val,而 node.right 的任何后代,值总 > node.val。此外,先序遍历首先显示节点的值,然后遍历 node.left,接着遍历 node.right。)

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

LEETCODE 993. Cousins in Binary Tree 解题思路分析

题目大意:

二叉树的堂兄弟节点

在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。

如果二叉树的两个节点深度相同,但父节点不同,则它们是一对堂兄弟节点。

我们给出了具有唯一值的二叉树的根节点 root,以及树中两个不同节点的值 x 和 y。

只有与值 x 和 y 对应的节点是堂兄弟节点时,才返回 true。否则,返回 false。

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

LEETCODE 1426. Counting Elements 解题思路分析

题目大意:

Given an integer array arr, count how many elements x there are, such that x + 1 is also in arr.

If there’re duplicates in arr, count them seperately.

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

LEETCODE 1427. Perform String Shifts 解题思路分析

题目大意:

You are given a string s containing lowercase English letters, and a matrix shift, where shift[i] = [direction, amount]:

  • direction can be 0 (for left shift) or 1 (for right shift). 
  • amount is the amount by which string s is to be shifted.
  • A left shift by 1 means remove the first character of s and append it to the end.
  • Similarly, a right shift by 1 means remove the last character of s and add it to the beginning.

Return the final string after all operations.

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

LEETCODE 1428. Leftmost Column with at Least a One 解题思路分析

题目大意:

(这是一道互动问题)

二进制矩阵的定义是它的所有元素不是0就是1。另外矩阵的每一行上的元素都是按照非递减顺序排列。

给定一个每一行都排序好的二进制矩阵,请你返回包含1的最靠左一列的下标。如果不存在这样的列,返回-1。

你不能直接访问二进制矩阵。你只能通过BinaryMatrix 类的接口访问二进制矩阵。

  • BinaryMatrix.get(row, col) 返回第row行第col列上的元素。(0-based)
  • BinaryMatrix.dimensions() 返回一个列表[rows, cols],代表矩阵拥有rows行以及cols列。

你不能调用BinaryMatrix.get方法超过1000次,否则会被判定为错误答案。

Also, any solutions that attempt to circumvent the judge will result in disqualification.

For custom testing purposes you’re given the binary matrix mat as input in the following four examples. You will not have access the binary matrix directly.

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

LEETCODE 1429. First Unique Number 解题思路分析

题目大意:(中文翻译略)

You have a queue of integers, you need to retrieve the first unique integer in the queue.

Implement the FirstUnique class:

  • FirstUnique(int[] nums) Initializes the object with the numbers in the queue.
  • int showFirstUnique() returns the value of the first unique integer of the queue, and returns -1 if there is no such integer.
  • void add(int value) insert value to the queue.
继续阅读
发表在 leetcode | 标签为 , , , | 留下评论

LEETCODE 1431. Kids With the Greatest Number of Candies 解题思路分析

题目大意:

拥有最多糖果的孩子

给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。

对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。

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

LEETCODE 1432. Max Difference You Can Get From Changing an Integer 解题思路分析

题目大意:

改变一个整数能得到的最大差值

给你一个整数 num 。你可以对它进行如下步骤恰好 两次 :

  • 选择一个数字 x (0 <= x <= 9).
  • 选择另一个数字 y (0 <= y <= 9) 。数字 y 可以等于 x 。
  • 将 num 中所有出现 x 的数位都用 y 替换。
  • 得到的新的整数 不能 有前导 0 ,得到的新整数也 不能 是 0 。

令两次对 num 的操作得到的结果分别为 a 和 b 。

请你返回 a 和 b 的 最大差值 。

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

LEETCODE 1433. Check If a String Can Break Another String 解题思路分析

题目大意:

检查一个字符串是否可以打破另一个字符串

给你两个字符串 s1 和 s2 ,它们长度相等,请你检查是否存在一个 s1  的排列可以打破 s2 的一个排列,或者是否存在一个 s2 的排列可以打破 s1 的一个排列。

字符串 x 可以打破字符串 y (两者长度都为 n )需满足对于所有 i(在 0 到 n – 1 之间)都有 x[i] >= y[i](字典序意义下的顺序)。

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

LEETCODE 1434. Number of Ways to Wear Different Hats to Each Other 解题思路分析

题目大意:

每个人戴不同帽子的方案数

总共有 n 个人和 40 种不同的帽子,帽子编号从 1 到 40 。

给你一个整数列表的列表 hats ,其中 hats[i] 是第 i 个人所有喜欢帽子的列表。

请你给每个人安排一顶他喜欢的帽子,确保每个人戴的帽子跟别人都不一样,并返回方案数。

由于答案可能很大,请返回它对 10^9 + 7 取余后的结果。

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