LEETCODE 725. Split Linked List in Parts 解题思路分析

题目大意:

分隔链表

给定一个头结点为 root 的链表, 编写一个函数以将链表分隔为 k 个连续的部分。

每部分的长度应该尽可能的相等: 任意两部分的长度差距不能超过 1,也就是说可能有些部分为 null。

这k个部分应该按照在链表中出现的顺序进行输出,并且排在前面的部分的长度应该大于或等于后面的长度。

返回一个符合上述规则的链表的列表。

举例: 1->2->3->4, k = 5 // 5 结果 [ [1], [2], [3], [4], null ]

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

LEETCODE 1010. Pairs of Songs With Total Durations Divisible by 60 解题思路分析

题目大意:

总持续时间可被 60 整除的歌曲

在歌曲列表中,第 i 首歌曲的持续时间为 time[i] 秒。

返回其总持续时间(以秒为单位)可被 60 整除的歌曲对的数量。形式上,我们希望索引的数字  i < j 且有 (time[i] + time[j]) % 60 == 0。

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

LEETCODE常见算法之二分查找超详细白话讲解

继续阅读

发表在 leetcode | 标签为 , , , | 10条评论

LEETCODE 1351. Count Negative Numbers in a Sorted Matrix 解题思路分析

题目大意:

统计有序矩阵中的负数

给你一个 m * n 的矩阵 grid,矩阵中的元素无论是按行还是按列,都以非递增顺序排列。 

请你统计并返回 grid 中 负数 的数目。

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

LEETCODE 1352. Product of the Last K Numbers 解题思路分析

题目大意:

最后 K 个数的乘积

请你实现一个「数字乘积类」ProductOfNumbers,要求支持下述两种方法:

add(int num)

  • 将数字 num 添加到当前数字列表的最后面。

getProduct(int k)

  • 返回当前数字列表中,最后 k 个数字的乘积。
  • 你可以假设当前列表中始终 至少 包含 k 个数字。

题目数据保证:任何时候,任一连续数字序列的乘积都在 32-bit 整数范围内,不会溢出。

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

LEETCODE 1353. Maximum Number of Events That Can Be Attended 解题思路分析

题目大意:

最多可以参加的会议数目

给你一个数组 events,其中 events[i] = [startDayi, endDayi] ,表示会议 i 开始于 startDayi ,结束于 endDayi 。

你可以在满足 startDayi <= d <= endDayi 中的任意一天 d 参加会议 i 。注意,一天只能参加一个会议。

请你返回你可以参加的 最大 会议数目。

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

LEETCODE 1354. Construct Target Array With Multiple Sums 解题思路分析

题目大意:

多次求和构造目标数组

给你一个整数数组 target 。一开始,你有一个数组 A ,它的所有元素均为 1 ,你可以执行以下操作:

  • 令 x 为你数组里所有元素的和
  • 选择满足 0 <= i < target.size 的任意下标 i ,并让 A 数组里下标为 i 处的值为 x 。
  • 你可以重复该过程任意次

如果能从 A 开始构造出目标数组 target ,请你返回 True ,否则返回 False 。

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

LEETCODE常见算法之广度优先搜索BFS超详细白话讲解

继续阅读

发表在 leetcode | 标签为 , , , , | 6条评论

LEETCODE 386. Lexicographical Numbers 解题思路分析

题目大意:

字典序排数

给定一个整数 n, 返回从 1 到 n 的字典顺序。

例如,

给定 n =1 3,返回 [1,10,11,12,13,2,3,4,5,6,7,8,9] 。

请尽可能的优化算法的时间复杂度和空间复杂度。 输入的数据 n 小于等于 5,000,000。

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

LEETCODE 588. Design In-Memory File System 解题思路分析

题目大意:

设计内存文件系统

设计一个内存文件系统,模拟以下功能:

ls: 以字符串的格式输入一个路径。如果它是一个文件的路径,那么函数返回一个列表,仅包含这个文件的名字。如果它是一个文件夹的的路径,那么返回该 文件夹内 的所有文件和子文件夹的名字。你的返回结果(包括文件和子文件夹)应该按字典序排列。

mkdir:输入一个当前不存在的 文件夹路径 ,你需要根据路径名创建一个新的文件夹。如果有上层文件夹路径不存在,那么你也应该将它们全部创建。这个函数的返回类型为 void 。

addContentToFile: 输入字符串形式的 文件路径 和 文件内容 。如果文件不存在,你需要创建包含给定文件内容的文件。如果文件已经存在,那么你需要将给定的文件内容 追加 在原本内容的后面。这个函数的返回类型为 void 。

readContentFromFile: 输入 文件路径 ,以字符串形式返回该文件的 内容 。

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