力扣刷题记录
HUSTer-deeplearning
华中科技大学计算机学院研二学生,研究方向:计算机视觉
展开
-
划分字母区间(中等题)
划分原创 2022-09-26 09:29:39 · 185 阅读 · 0 评论 -
递增的三元子序列(中等题)
三元子序列原创 2022-09-23 15:28:42 · 96 阅读 · 0 评论 -
和为k的子数组(中等题)
前缀和原创 2022-09-23 10:39:46 · 61 阅读 · 0 评论 -
除自身以外数组的乘积(中等题)
除自身以外数组的乘积原创 2022-09-23 09:13:15 · 61 阅读 · 0 评论 -
螺旋矩阵(中等题)
螺旋矩阵原创 2022-09-22 10:20:05 · 64 阅读 · 0 评论 -
在排序数组中查找元素的第一个和最后一个位置(中等题)
通过二分查找来定位目标数,定位好后,再微调左右边界。原创 2022-06-20 15:59:39 · 80 阅读 · 1 评论 -
两球之间的磁力(中等题)
class Solution: def maxDistance(self, position: List[int], m: int) -> int: def check(x: int) -> bool: pre = position[0] cnt = 1 for i in range(1, len(position)): if position[i] - pr...原创 2022-05-20 14:42:08 · 96 阅读 · 0 评论 -
袋子里最少数目的球(中等题)
class Solution: def minimumSize(self, nums: List[int], maxOperations: int) -> int: def operate(x): sum = 0 for i in range(len(nums)): if nums[i]>x: if nums[i]%x==0: ...原创 2022-05-20 10:00:41 · 107 阅读 · 0 评论 -
最长递增子序列(中等难度)
思路:明显的动态规划题,d[i]表示以num[i]结尾的最长严格递增子序列的长度。第一个循环依次遍历d[i]并计算,第二个循环旨在更新d[i]的值,因为num[i]之前可能存在某个num[j]比他小,并且d[j]+1大于d[i]class Solution: def lengthOfLIS(self, nums: List[int]) -> int: d = [1]*len(nums) for i in range(len(nums)): ..原创 2022-05-19 19:33:58 · 151 阅读 · 0 评论 -
合并区间(中等题)
以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].思路:首先的将二维数组根据每个一维数组的第一个元素的大小进行排序,然原创 2022-05-18 17:09:27 · 106 阅读 · 0 评论 -
颜色分类(中等题)
给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。必须在不使用库的sort函数的情况下解决这个问题。思路:一次遍历即可,当遇到2的时候则与后面元素交换;当遇到1的时候,继续前进;当遇到0的时候,与前面元素交换,同时前进。class Solution: def sortColors(self, nums: List[int]) -&g原创 2022-05-18 16:02:16 · 155 阅读 · 0 评论 -
找到需要补充粉笔的学生编号(中等题)
一个班级里有 n 个学生,编号为 0 到 n - 1 。每个学生会依次回答问题,编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 n - 1 的学生,然后老师会重复这个过程,重新从编号为 0 的学生开始回答问题。给你一个长度为 n 且下标从 0 开始的整数数组 chalk 和一个整数 k 。一开始粉笔盒里总共有 k 支粉笔。当编号为 i 的学生回答问题时,他会消耗 chalk[i] 支粉笔。如果剩余粉笔数量 严格小于 chalk[i] ,那么学生 i 需要 补充 粉笔。请你返回需原创 2022-05-18 10:57:54 · 104 阅读 · 0 评论 -
找到 K 个最接近的元素(中等题)
给定一个 排序好 的数组 arr ,两个整数 k 和 x ,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须要是按升序排好的。整数 a 比整数 b 更接近 x 需要满足:|a - x| < |b - x| 或者|a - x| == |b - x| 且 a < b思路:因为是排序好的数组,所以k个数一定是长度为k的连续子数组,只需要找出这个子数组的起点即可。起点可以使用二分查找。class Solution: def findClosestEl..原创 2022-05-18 10:05:49 · 189 阅读 · 0 评论 -
有效三角形的个数(中等题)
给定一个包含非负整数的数组 nums ,返回其中可以组成三角形三条边的三元组个数。思路:首先需要对数组进行从小到大排序,这样会节省一些不必要的判断;需要注意的是:当从右到左循环时,然后进行双指针遍历,当后两个数之差大于第一个数时,就无法判断指针的移动。所以应该从左到右遍历列表,这样的话前两个数之差必然小于第三个数,当他们的和小于第三个数时,便可以让left向右移动。class Solution: def triangleNumber(self, nums: List[int]) -原创 2022-05-18 09:11:25 · 209 阅读 · 1 评论