LEETCODE 683. K Empty Slots 解题思路分析

题目大意:

You have N bulbs in a row numbered from 1 to N. Initially, all the bulbs are turned off. We turn on exactly one bulb everyday until all bulbs are on after N days.

You are given an array bulbs of length N where bulbs[i] = x means that on the (i+1)th day, we will turn on the bulb at position x where i is 0-indexed and x is 1-indexed.

Given an integer K, find out the minimum day number such that there exists two turned on bulbs that have exactly K bulbs between them that are all turned off.

If there isn’t such day, return -1.

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

LEETCODE 1379. Find a Corresponding Node of a Binary Tree in a Clone of That Tree 解题思路分析

题目大意:

给你两颗二叉树 original 和cloned,以及一个 original  树种的节点对象 target 。

cloned树是 original树的拷贝。

请返回 cloned 树种相对应的 target 节点对象。

注意,你不能改变2棵树的内容以及 target节点,另外返回结果必须是cloned树中的对象。

进阶:如果每棵树中存在数值相同的节点,你该如何处理

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

LEETCODE 1370. Increasing Decreasing String 解题思路分析

题目大意:

上升下降字符串

给你一个字符串 s ,请你根据下面的算法重新构造字符串:

  • 从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。
  • 从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。
  • 重复步骤 2 ,直到你没法从 s 中选择字符。
  • 从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。
  • 从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后面。
  • 重复步骤 5 ,直到你没法从 s 中选择字符。
  • 重复步骤 1 到 6 ,直到 s 中所有字符都已经被选过。

在任何一步中,如果最小或者最大字符不止一个 ,你可以选择其中任意一个,并将其添加到结果字符串。

请你返回将 s 中字符重新排序后的 结果字符串 。

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

LEETCODE 1371. Find the Longest Substring Containing Vowels in Even Counts 解题思路分析

题目大意:

每个元音包含偶数次的最长子字符串

给你一个字符串 s ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 ‘a’,’e’,’i’,’o’,’u’ ,在子字符串中都恰好出现了偶数次。

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

LEETCODE 1372. Longest ZigZag Path in a Binary Tree 解题思路分析

题目大意:

二叉树中的最长交错路径

给你一棵以 root 为根的二叉树,二叉树中的交错路径定义如下:

  • 选择二叉树中 任意 节点和一个方向(左或者右)。
  • 如果前进方向为右,那么移动到当前节点的的右子节点,否则移动到它的左子节点。
  • 改变前进方向:左变右或者右变左。
  • 重复第二步和第三步,直到你在树中无法继续移动。

交错路径的长度定义为:访问过的节点数目 – 1(单个节点的路径长度为 0 )。

请你返回给定树中最长 交错路径 的长度。

继续阅读
发表在 leetcode | 留下评论

LEETCODE 1375. Bulb Switcher III 解题思路分析

题目大意:

灯泡开关 III

房间中有 n 枚灯泡,编号从 1 到 n,自左向右排成一排。最初,所有的灯都是关着的。

在 k  时刻( k 的取值范围是 0 到 n – 1),我们打开 light[k] 这个灯。

灯的颜色要想 变成蓝色 就必须同时满足下面两个条件:

  • 灯处于打开状态。
  • 排在它之前(左侧)的所有灯也都处于打开状态。

请返回能够让 所有开着的 灯都 变成蓝色 的时刻 数目 。

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

LEETCODE 1376. Time Needed to Inform All Employees 解题思路分析

题目大意:

通知所有员工所需的时间

公司里有 n 名员工,每个员工的 ID 都是独一无二的,编号从 0 到 n – 1。公司的总负责人通过 headID 进行标识。

在 manager 数组中,每个员工都有一个直属负责人,其中 manager[i] 是第 i 名员工的直属负责人。对于总负责人,manager[headID] = -1。题目保证从属关系可以用树结构显示。

公司总负责人想要向公司所有员工通告一条紧急消息。他将会首先通知他的直属下属们,然后由这些下属通知他们的下属,直到所有的员工都得知这条紧急消息。

第 i 名员工需要 informTime[i] 分钟来通知它的所有直属下属(也就是说在 informTime[i] 分钟后,他的所有直属下属都可以开始传播这一消息)。

返回通知所有员工这一紧急消息所需要的 分钟数 。

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

LEETCODE 1377. Frog Position After T Seconds 解题思路分析

题目大意:

T 秒后青蛙的位置

给你一棵由 n 个顶点组成的无向树,顶点编号从 1 到 n。青蛙从 顶点 1 开始起跳。规则如下:

  • 在一秒内,青蛙从它所在的当前顶点跳到另一个 未访问 过的顶点(如果它们直接相连)。
  • 青蛙无法跳回已经访问过的顶点。
  • 如果青蛙可以跳到多个不同顶点,那么它跳到其中任意一个顶点上的机率都相同。
  • 如果青蛙不能跳到任何未访问过的顶点上,那么它每次跳跃都会停留在原地。

无向树的边用数组 edges 描述,其中 edges[i] = [fromi, toi] 意味着存在一条直接连通 fromi 和 toi 两个顶点的边。

返回青蛙在 t 秒后位于目标顶点 target 上的概率。

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

LEETCODE 1373. Maximum Sum BST in Binary Tree 解题思路分析

题目大意:

二叉搜索子树的最大键值和

给你一棵以 root 为根的 二叉树 ,请你返回 任意 二叉搜索子树的最大键值和。

二叉搜索树的定义如下:

  • 任意节点的左子树中的键值都 小于 此节点的键值。
  • 任意节点的右子树中的键值都 大于 此节点的键值。
  • 任意节点的左子树和右子树都是二叉搜索树。
继续阅读
发表在 leetcode | 标签为 , , , | 留下评论

LEETCODE 1374. Generate a String With Characters That Have Odd Counts 解题思路分析

题目大意:

生成每种字符都是奇数个的字符串

给你一个整数 n,请你返回一个含 n 个字符的字符串,其中每种字符在该字符串中都恰好出现 奇数次 。

返回的字符串必须只含小写英文字母。如果存在多个满足题目要求的字符串,则返回其中任意一个即可。

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