- 博客(145)
- 收藏
- 关注
原创 力扣:(123)买卖股票的最佳时机3(Python)
给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
2025-04-10 10:23:31
280
原创 力扣:(72)编辑距离(Python)
给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数。你可以对一个单词进行如下三种操作:插入一个字符 删除一个字符 替换一个字符。
2025-04-08 11:50:25
173
原创 力扣:(63)不同路径2(Python)
给定一个m x n的整数数组grid。一个机器人初始位于(即grid[0][0]机器人尝试移动到(即机器人每次只能向下或者向右移动一步。网格中的障碍物和空位置分别用1和0来表示。机器人的移动路径中不能包含有障碍物的方格。返回机器人能够到达右下角的不同路径数量。
2025-04-08 11:31:39
198
原创 力扣:(64)最小路径和(Python)
给定一个包含非负整数的m x n网格grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。每次只能向下或者向右移动一步。
2025-04-08 11:23:03
248
原创 力扣:(120)三角形最小路径和(Python)
给定一个三角形triangle,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。在这里指的是与相同或者等于的两个结点。也就是说,如果正位于当前行的下标i,那么下一步可以移动到下一行的下标i或i + 1。
2025-04-08 11:18:58
257
原创 力扣:(300)最长递增子序列(Python)
给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。
2025-04-08 11:14:23
248
原创 力扣:(322)零钱兑换(Python)
给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。你可以认为每种硬币的数量是无限的。
2025-04-08 11:04:24
298
原创 力扣:(139)单词拆分(Python)
给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。
2025-04-08 10:57:26
258
原创 力扣:(198)打家劫舍(Python)
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。
2025-04-08 10:50:06
373
原创 力扣:(70)爬楼梯(Python)
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
2025-04-08 10:46:03
250
原创 力扣:(149)直线上最多的点数(Python)
给你一个数组 points ,其中 points[i] = [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。
2025-04-06 17:47:26
312
原创 力扣:(69)x的平方根
给你一个非负整数x,计算并返回x的。由于返回类型是整数,结果只保留,小数部分将被不允许使用任何内置指数函数和算符,例如或者x ** 0.5。
2025-04-06 17:39:07
225
原创 力扣:(66)加一(Python)
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。
2025-04-06 13:33:38
291
原创 力扣:(9)回文数(Python)
给你一个整数 x ,如果 x 是一个回文整数,返回 true;否则,返回 false。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
2025-04-06 13:29:40
360
原创 力扣:(201)数字范围按位与(Python)
给你两个整数left和right,表示区间,返回此区间内所有数字的结果(包含leftright端点)。
2025-04-05 12:00:39
215
原创 力扣:(137)只出现一次的数字2(Python)
给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次。请你找出并返回那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。
2025-04-05 11:33:17
322
原创 力扣:(136)只出现一次的数字(Python)
给你一个整数数组nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。
2025-04-05 11:28:17
165
原创 力扣:(191)位1的个数(Python)
给定一个正整数 n,编写一个函数,获取一个正整数的二进制形式并返回其二进制表达式中 设置位 的个数(也被称为汉明重量)。
2025-04-05 11:24:43
283
原创 力扣:(190)颠倒二进制位(Python)
颠倒给定的 32 位无符号整数的二进制位。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。进阶: 如果多次调用这个函数,你将如何优化你的算法?
2025-04-05 11:18:16
303
原创 力扣:(295)数据流的中位数(Python)
中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。例如 arr = [2,3,4] 的中位数是 3。例如 arr = [2,3] 的中位数是 (2 + 3) / 2 = 2.5。实现 MedianFinder 类:MedianFinder() 初始化 MedianFinder 对象。void addNum(int num) 将数据流中的整数 num 添加到数据结构中。double findMedian() 返回到目前为止所有元素的中位数。
2025-04-05 11:04:31
281
原创 力扣:(373)查找和最小的K对数字(Python)
给定两个以 非递减顺序排列 的整数数组 nums1 和 nums2 , 以及一个整数 k。定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2。请找到和最小的 k 个数对 (u1,v1), (u2,v2) ... (uk,vk)。
2025-04-05 11:00:04
253
原创 力扣:(502)IPO(Python)
假设 力扣(LeetCode)即将开始 IPO。为了以更高的价格将股票卖给风险投资公司,力扣 希望在 IPO 之前开展一些项目以增加其资本。由于资源有限,它只能在 IPO 之前完成最多 k 个不同的项目。帮助 力扣 设计完成最多 k 个不同项目后得到最大总资本的方式。给你 n 个项目。对于每个项目 i ,它都有一个纯利润 profits[i] ,和启动该项目需要的最小资本 capital[i]。最初,你的资本为 w。当你完成一个项目时,你将获得纯利润,且利润将被添加到你的总资本中。
2025-04-05 10:54:43
189
原创 力扣:(215)数组中的第K个最大元素(Python)
给定整数数组nums和整数k,请返回数组中第k个最大的元素。请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个不同的元素。你必须设计并实现时间复杂度为O(n)的算法解决此问题。
2025-04-04 13:59:53
441
原创 力扣:(4)寻找两个正序数组中的中位数
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数。算法的时间复杂度应该为 O(log (m+n))。
2025-04-04 10:51:36
291
原创 力扣:(153)寻找旋转排序数组中的最小值(Python)
已知一个长度为n的数组,预先按照升序排列,经由1到n次后,得到输入数组。例如,原数组47注意,数组的结果为数组。给你一个元素值的数组nums,它原来是一个升序排列的数组,并按上述情形进行了多次旋转。请你找出并返回数组中的。你必须设计一个时间复杂度为O(log n)的算法解决此问题。
2025-04-04 10:42:24
269
原创 力扣(34)在排序数组中查找元素的第一个和最后一个位置(Python)
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。二分查找 的基本思想:用两个指针 和 来搜索目标值的位置。找到目标值后,继续检查是否在目标的左侧或右侧找到更多相同的目标值。两次二分查找:第一次:查找 左边界,即 出现的 第一个位置。第二次:查找 右边界,即 出现的 最后一个位置。查找左边界:如果 ,
2025-04-04 10:37:47
350
原创 力扣:(33)搜索旋转排序数组(Python)
整数数组nums按升序排列,数组中的值。在传递给函数之前,nums在预先未知的某个下标k)上进行了,使数组变为(下标计数)。例如,在下标3处经旋转后可能变为。给你的数组nums和一个整数target,如果nums中存在这个目标值target,则返回它的下标,否则返回-1。你必须设计一个时间复杂度为O(log n)的算法解决此问题。
2025-04-04 10:28:02
262
原创 力扣:(162)寻找峰值(Python)
峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。你必须实现时间复杂度为 O(log n) 的算法来解决此问题。
2025-04-04 10:20:43
325
原创 力扣:(74)搜索二维矩阵(Python)
给你一个满足下述两条属性的 m x n 整数矩阵:每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。给你一个整数 target ,如果 target 在矩阵中,返回 true;否则,返回 false。
2025-04-04 10:11:38
348
原创 力扣:(35)搜索插入位置(Python)
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。
2025-04-04 10:08:22
256
原创 力扣:(918)环形子数组的最大和
给定一个长度为 n 的环形整数数组 nums ,返回 nums 的非空 子数组 的最大可能和。环形数组 意味着数组的末端将会与开头相连呈环状。形式上, nums[i] 的下一个元素是 nums[(i + 1) % n] , nums[i] 的前一个元素是 nums[(i - 1 + n) % n]。子数组 最多只能包含固定缓冲区 nums 中的每个元素一次。
2025-04-04 10:05:15
363
原创 力扣:(53)最大子数组和(Python)
给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。是数组中的一个连续部分。
2025-04-04 09:57:53
322
原创 力扣:(23)合并K个升序链表(Python )
给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。
2025-04-02 14:36:00
300
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅