
算法与数据结构
算法是解决问题的步骤和规则集合
数据结构是组织和存储数据的方式
好好学习Py
学习之路漫长无边
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
填充每个节点的下一个右侧节点指针(LeetCode)
给定一个,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:int val;Node *left;Node *next;填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为NULL。初始状态下,所有 next 指针都被设置为NULL。原创 2024-09-02 20:11:30 · 591 阅读 · 0 评论 -
二叉树展开为列表(LeetCode)
给你二叉树的根结点rootTreeNoderightnull。原创 2024-09-02 20:01:16 · 639 阅读 · 0 评论 -
计算二叉树的深度(LeetCode)
某公司架构以二叉树形式记录,请返回该公司的层级数。原创 2024-09-01 23:59:55 · 422 阅读 · 0 评论 -
二叉树的直径(LeetCode)
给你一棵二叉树的根节点,返回该树的。二叉树的是指树中任意两个节点之间最长路径的。这条路径可能经过也可能不经过根节点root。两节点之间路径的由它们之间边数表示。原创 2024-09-01 23:57:36 · 464 阅读 · 0 评论 -
二叉树的前序遍历(LeetCode)
给你二叉树的根节点root,返回它节点值的遍历。原创 2024-08-31 21:09:31 · 498 阅读 · 0 评论 -
二叉树的最大深度(LeetCode)
给定一个二叉树root,返回其最大深度。二叉树的是指从根节点到最远叶子节点的最长路径上的节点数。原创 2024-08-31 21:05:26 · 511 阅读 · 0 评论 -
去除重复字母(LeetCode)
给你一个字符串s,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证(要求不能打乱其他字符的相对位置)。原创 2024-08-30 21:11:22 · 1564 阅读 · 0 评论 -
优势洗牌(LeetCode)
给定两个长度相等的数组nums1和nums2nums1相对于nums2的优势可以用满足的索引i的数目来描述。返回nums1的排列,使其相对于nums2的优势最大化。原创 2024-08-30 09:43:07 · 576 阅读 · 0 评论 -
搜索旋转排序数组II(LeetCode)
已知存在一个按非降序排列的整数数组nums,数组中的值不必互不相同。在传递给函数之前,nums在预先未知的某个下标k)上进行了,使数组变为(下标计数)。例如,在下标5处经旋转后可能变为。给你的数组nums和一个整数target,请你编写一个函数来判断给定的目标值是否存在于数组中。如果nums中存在这个目标值target,则返回true,否则返回false。你必须尽可能减少整个操作步骤。原创 2024-08-29 23:06:31 · 450 阅读 · 0 评论 -
搜索旋转排序数组(LeetCode)
整数数组nums按升序排列,数组中的值。在传递给函数之前,nums在预先未知的某个下标k)上进行了,使数组变为(下标计数)。例如,在下标3处经旋转后可能变为。给你的数组nums和一个整数target,如果nums中存在这个目标值target,则返回它的下标,否则返回-1。你必须设计一个时间复杂度为O(log n)的算法解决此问题。原创 2024-08-29 09:52:07 · 378 阅读 · 0 评论 -
点名(LeetCode)
某班级 n 位同学的学号为 0 ~ n-1。点名结果记录于升序数组records。假定仅有一位同学缺席,请返回他的学号。原创 2024-08-29 09:41:10 · 466 阅读 · 0 评论 -
统计目标成绩的出现次数(LeetCode)
某班级考试成绩按非严格递增顺序记录于整数数组scores,请返回目标成绩target的出现次数。原创 2024-08-28 09:34:30 · 443 阅读 · 0 评论 -
山脉数组的峰顶索引(LeetCode)
给定一个长度为n的整数数组arr,其中的值递增到一个然后递减。返回峰值元素的下标。你必须设计并实现时间复杂度为O(log(n))的解决方案。原创 2024-08-28 09:28:52 · 301 阅读 · 0 评论 -
寻找峰值(LeetCode)
峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回所在位置即可。你可以假设。你必须实现时间复杂度为O(log n)的算法来解决此问题。原创 2024-08-27 09:35:26 · 427 阅读 · 0 评论 -
找到K个最接近的元素(LeetCode)
给定一个的数组arr,两个整数k和x,从数组中找到最靠近x(两数之差最小)的k个数。返回的结果必须要是按升序排好的。整数a比整数b更接近xa < b。原创 2024-08-27 09:30:39 · 334 阅读 · 0 评论 -
搜索二维矩阵 II(LeetCode)
编写一个高效的算法来搜索m x n矩阵matrix中的一个目标值target。原创 2024-08-26 20:52:36 · 768 阅读 · 0 评论 -
搜索二维矩阵(LeetCode)
给你一个满足下述两条属性的m x n给你一个整数target,如果target在矩阵中,返回true;否则,返回false。原创 2024-08-26 20:33:03 · 1158 阅读 · 0 评论 -
分隔数组的最大值(LeetCode)
给定一个非负整数数组nums和一个整数k,你需要将这个数组分成k个非空的连续子数组。设计一个算法使得这k个子数组各自和的最大值最小。原创 2024-08-25 23:10:15 · 305 阅读 · 0 评论 -
在D天内送达包裹的能力(LeetCode)
传送带上的包裹必须在days天内从一个港口运送到另一个港口。传送带上的第i个包裹的重量为weights[i]。每一天,我们都会按给出重量(weights)的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。返回能在days天内将传送带上的所有包裹送达的船的最低运载能力。原创 2024-08-25 23:01:24 · 402 阅读 · 0 评论 -
爱吃香蕉的珂珂(LeetCode)
珂珂喜欢吃香蕉。这里有n堆香蕉,第i堆中有piles[i]根香蕉。警卫已经离开了,将在h小时后回来。珂珂可以决定她吃香蕉的速度k(单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉k根。如果这堆香蕉少于k根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。返回她可以在h小时内吃掉所有香蕉的最小速度kk为整数)。原创 2024-08-24 19:30:14 · 381 阅读 · 0 评论 -
重复的DNA序列(LeetCdoe)
由一系列核苷酸组成,缩写为'A''C''G'和'T'在研究时,识别 DNA 中的重复序列非常有用。给定一个表示的字符串s,返回所有在 DNA 分子中出现不止一次的10的序列(子字符串)。你可以按返回答案。原创 2024-08-24 19:00:17 · 373 阅读 · 0 评论 -
至少有k个重复字符的最长子串(LeetCode)
给你一个字符串s和一个整数k,请你找出s中的最长子串, 要求该子串中的每一字符出现次数都不少于k。返回这一子串的长度。如果不存在这样的子字符串,则返回 0。原创 2024-08-23 00:01:06 · 473 阅读 · 1 评论 -
存在重复元素 III(LeetCode)
给你一个整数数组nums和两个整数indexDiff和valueDiff。找出满足下述条件的下标对(i, j)i!= j如果存在,返回true;否则,返回false。原创 2024-08-22 23:42:55 · 423 阅读 · 0 评论 -
存在重复元素 II(LeetCode)
给你一个整数数组nums和一个整数k,判断数组中是否存在两个i和j,满足且。如果存在,返回true;否则,返回false。原创 2024-08-22 23:19:01 · 420 阅读 · 0 评论 -
替换后的最长重复字符(LeetCode)
给你一个字符串s和一个整数k。你可以选择字符串中的任一字符,并将其更改为任何其他大写英文字符。该操作最多可执行k次。在执行上述操作后,返回包含相同字母的最长子字符串的长度。原创 2024-08-21 09:31:58 · 412 阅读 · 0 评论 -
最大连续1的个数 III(LeetCode)
给定一个二进制数组nums和一个整数k,如果可以翻转最多k个0,则返回数组中连续1的最大个数。原创 2024-08-21 09:28:54 · 385 阅读 · 0 评论 -
乘积小于 K 的子数组(LeetCode)
给你一个整数数组nums和一个整数k,请你返回子数组内所有元素的乘积严格小于k的连续子数组的数目。原创 2024-08-20 20:35:23 · 481 阅读 · 0 评论 -
将 x 减到 0 的最小操作数(LeetCode)
给你一个整数数组nums和一个整数x。每一次操作时,你应当移除数组nums最左边或最右边的元素,然后从x中减去该元素的值。请注意,需要数组以供接下来的操作使用。如果可以将x减到0,返回;否则,返回-1。原创 2024-08-20 20:02:30 · 360 阅读 · 0 评论 -
无重复字符的最长子串(LeetCode)
给定一个字符串s,请你找出其中不含有重复字符的的长度。原创 2024-08-20 08:36:25 · 363 阅读 · 0 评论 -
找到字符串中所有字母的异位词(LeetCode)
给定两个字符串s和p,找到s中所有p的的子串,返回这些子串的起始索引。不考虑答案输出的顺序。指由相同字母重排列形成的字符串(包括相同的字符串)。原创 2024-08-20 08:34:02 · 345 阅读 · 0 评论 -
字符串的排列(LeetCode)
给你两个字符串s1和s2,写一个函数来判断s2是否包含s1的排列。如果是,返回true;否则,返回false。换句话说,s1的排列之一是s2的。原创 2024-08-19 08:00:00 · 273 阅读 · 0 评论 -
最小覆盖子串(LeetCode)
给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串""。原创 2024-08-19 05:00:00 · 315 阅读 · 0 评论 -
螺旋矩阵 II(LeetCode)
给你一个正整数n,生成一个包含1到n2所有元素,且元素按顺时针顺序螺旋排列的n x n正方形矩阵matrix。原创 2024-08-18 14:30:45 · 313 阅读 · 0 评论 -
螺旋矩阵(LeetCode)
给你一个m行n列的矩阵matrix,请按照,返回矩阵中的所有元素。原创 2024-08-18 14:26:24 · 279 阅读 · 0 评论 -
旋转图像(LeetCode)
给定一个n×n的二维矩阵matrix表示一个图像。请你将图像顺时针旋转 90 度。你必须在旋转图像,这意味着你需要直接修改输入的二维矩阵。使用另一个矩阵来旋转图像。原创 2024-08-18 14:04:08 · 353 阅读 · 0 评论 -
拼车(LeetCode)
车上最初有capacity个空座位。车向一个方向行驶(也就是说,给定整数capacity和一个数组trips表示第i次旅行有乘客,接他们和放他们的位置分别是fromi和toi。这些位置是从汽车的初始位置向东的公里数。当且仅当你可以在所有给定的行程中接送所有乘客时,返回true,否则请返回false。原创 2024-08-17 13:43:01 · 226 阅读 · 0 评论 -
航班预订统计(LeetCode)
这里有n个航班,它们分别从1到n进行编号。有一份航班预订表bookings,表中第i条预订记录意味着在从firsti到lastifirsti和lasti)的上预订了seatsi个座位。请你返回一个长度为n的数组answer,里面的元素是每个航班预定的座位总数。原创 2024-08-17 13:30:38 · 461 阅读 · 0 评论 -
区间加法(LeetCode)
假设你有一个长度为的数组,初始情况下所有的数字均为,你将会被给出个更新的操作。,你需要将子数组(包括 startIndex 和 endIndex)增加。请你返回k次操作后的数组。原创 2024-08-17 13:25:01 · 343 阅读 · 0 评论 -
表现良好的最长时间段(LeetCode)
给你一份工作时间表hours,上面记录着某一位员工每天的工作小时数。我们认为当员工一天中的工作小时数大于8小时的时候,那么这一天就是「所谓「表现良好的时间段」,意味在这段时间内,「劳累的天数」是严格「不劳累的天数」。请你返回「表现良好时间段」的最大长度。原创 2024-08-15 20:55:33 · 383 阅读 · 0 评论 -
和可被 K 整除的子数组(LeedCode)
给定一个整数数组nums和一个整数k,返回其中元素之和可被k整除的非空的数目。是数组中的部分。原创 2024-08-15 20:51:22 · 372 阅读 · 0 评论