力扣
细水长流者
讨厌我所讨厌的,喜欢我所喜欢的东西~
展开
-
力扣1584. 连接所有点的最小费用之最小生成树---Python
题目描述:给你一个points 数组,表示 2D 平面上的一些点,其中 points[i] = [xi, yi] 。连接点 [xi, yi] 和点 [xj, yj] 的费用为它们之间的 曼哈顿距离 :|xi - xj| + |yi - yj| ,其中 |val| 表示 val 的绝对值。请你返回将所有点连接的最小总费用。只有任意两点之间 有且仅有 一条简单路径时,才认为所有点都已连接。示例 1:输入:points = [[0,0],[2,2],[3,10],[5,2],[7,0]]输出:20原创 2022-01-18 09:56:13 · 1033 阅读 · 1 评论 -
剑指 Offer II 008. 和大于等于 target 的最短子数组---Python
剑指 Offer II 008. 和大于等于 target 的最短子数组题目描述:给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。示例 1:输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。示例 2:输原创 2021-08-25 15:42:09 · 279 阅读 · 0 评论 -
15. 三数之和---Python
15. 三数之和题目描述:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]提示:0 <= nums.length <=原创 2021-08-25 10:41:51 · 615 阅读 · 0 评论 -
剑指 Offer II 082. 含有重复元素集合的组合---Python
剑指 Offer II 082. 含有重复元素集合的组合题目描述:给定一个可能有重复数字的整数数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次,解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,输出:[[1,1,6],[1,2,5],[1,7],[2,6]]示例 2:原创 2021-08-24 10:21:29 · 297 阅读 · 0 评论 -
剑指 Offer II 081. 允许重复选择元素的组合---Python
剑指 Offer II 081. 允许重复选择元素的组合题目描述:给定一个无重复元素的正整数数组 candidates 和一个正整数 target ,找出 candidates 中所有可以使数字和为目标数 target 的唯一组合。candidates 中的数字可以无限制重复被选取。如果至少一个所选数字数量不同,则两种组合是唯一的。对于给定的输入,保证和为 target 的唯一组合数少于 150 个。示例 1:输入: candidates = [2,3,6,7], target = 7输出:原创 2021-08-23 22:29:49 · 320 阅读 · 0 评论 -
剑指offer 22. 括号生成---Python
22. 括号生成题目描述:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。有效括号组合需满足:左括号必须以正确的顺序闭合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]提示:1 <= n <= 8来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/原创 2021-08-23 15:45:43 · 177 阅读 · 0 评论 -
剑指 Offer II 006. 排序数组中两个数字之和---Python
剑指 Offer II 006. 排序数组中两个数字之和题目描述:给定一个已按照 升序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target 。函数应该以长度为 2 的整数数组的形式返回这两个数的下标值。numbers 的下标 从 0 开始计数 ,所以答案数组应当满足 0 <= answer[0] < answer[1] < numbers.length 。假设数组中存在且只存在一对符合条件的数字,同时一个数字不能使用两次。示例 1:原创 2021-08-18 20:36:43 · 243 阅读 · 0 评论 -
力扣 746. 使用最小花费爬楼梯---Python
746. 使用最小花费爬楼梯题目描述:数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。请你找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。示例 1:输入:cost = [10, 15, 20]输出:15解释:最低花费是从 cost[1] 开始,然后走两步即可到阶梯顶,一共花费 15原创 2021-08-13 16:42:00 · 307 阅读 · 0 评论 -
剑指 Offer II 024. 反转链表---Python
剑指 Offer II 024. 反转链表题目描述:给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]提示:链表中节点的数目范围是 [0, 5000]-5000 <= Node.val <= 5000来源:力扣(LeetCode)链接:https:/原创 2021-08-13 15:55:53 · 173 阅读 · 0 评论 -
力扣 52. N皇后 II---Python
52. N皇后 II题目描述:n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。示例 1:输入:n = 4输出:2解释:如上图所示,4 皇后问题存在两个不同的解法。示例 2:输入:n = 1输出:1提示:1 <= n <= 9皇后彼此不能相互攻击,也就是说:任何两个皇后都不能处于同一条横行、纵行或斜线上。来源:力扣(LeetCode)链接:ht原创 2021-08-13 15:11:35 · 214 阅读 · 0 评论 -
力扣 51. N 皇后---Python
51. N 皇后题目描述:n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例 1:输入:n = 4输出:[[".Q…","…Q",“Q…”,"…Q."],["…Q.",“Q…”,"…Q",".Q…"]]解释:如上图所示,4 皇后问题存在两个不同的解法。示例 2:输入:原创 2021-08-12 21:32:14 · 281 阅读 · 0 评论 -
力扣 1219. 黄金矿工---Python
1219. 黄金矿工题目描述:你要开发一座金矿,地质勘测学家已经探明了这座金矿中的资源分布,并用大小为 m * n 的网格 grid 进行了标注。每个单元格中的整数就表示这一单元格中的黄金数量;如果该单元格是空的,那么就是 0。为了使收益最大化,矿工需要按以下规则来开采黄金:每当矿工进入一个单元,就会收集该单元格中的所有黄金。矿工每次可以从当前位置向上下左右四个方向走。每个单元格只能被开采(进入)一次。不得开采(进入)黄金数目为 0 的单元格。矿工可以从网格中 任意一个 有黄金的单元格出发或转载 2021-08-12 21:39:12 · 409 阅读 · 0 评论 -
力扣 46. 全排列---Python
46. 全排列题目描述:给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。示例 1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2:输入:nums = [0,1]输出:[[0,1],[1,0]]示例 3:输入:nums = [1]输出:[[1]]提示:1 <= nums.length <= 6-10 <原创 2021-08-12 21:43:50 · 466 阅读 · 0 评论 -
力扣 204. 计数质数---Python
204. 计数质数题目描述:统计所有小于非负整数 n 的质数的数量。示例 1:输入:n = 10输出:4解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。示例 2:输入:n = 0输出:0示例 3:输入:n = 1输出:0提示:0 <= n <= 5 * 106来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/count-primes著作权归领扣网络所有。商业转载请联系官方授权,非商业转原创 2021-08-06 16:45:48 · 233 阅读 · 0 评论 -
力扣19. 删除链表的倒数第 N 个结点---Python
19. 删除链表的倒数第 N 个结点题目描述:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]提示:链表中结点的数目为 sz1 <= sz <= 300 <= Node.val &l原创 2021-08-05 20:55:53 · 266 阅读 · 0 评论 -
力扣 2. 两数相加 ---Python
2. 两数相加题目描述:给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,原创 2021-08-05 20:41:56 · 315 阅读 · 0 评论 -
121. 买卖股票的最佳时机---Python
121. 买卖股票的最佳时机题目描述:天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不原创 2021-08-04 17:35:03 · 241 阅读 · 0 评论 -
70. 爬楼梯---Python
70. 爬楼梯题目描述:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1: 1 阶 + 1 阶2:2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 :1 阶 + 1 阶 + 1 阶2: 1 阶 + 2 阶3: 2 阶 + 1 阶来源:力扣(LeetCode)链接:https://原创 2021-08-04 16:15:40 · 282 阅读 · 0 评论 -
171. Excel 表列序号---Python
171. Excel 表列序号题目描述:给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回该列名称对应的列序号。例如,A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...示例 1:输入: columnTitle = “A”输出: 1示例 2:输入: columnTitle = “AB”输出: 28示例 3:输入: columnTitle = “ZY”输出:原创 2021-08-03 19:26:42 · 373 阅读 · 0 评论 -
168. Excel表列名称---Python
168. Excel表列名称题目描述:给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。例如:A -> 1B -> 2C -> 3…Z -> 26AA -> 27AB -> 28…示例 1:输入:columnNumber = 1输出:“A”示例 2:输入:columnNumber = 28输出:“AB”示例 3:输入:columnNumber = 701输出:“ZY”示例 4:输入:column原创 2021-08-03 19:01:51 · 721 阅读 · 0 评论 -
21. 合并两个有序链表---Python
21. 合并两个有序链表题目描述:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示:两个链表的节点数目范围是 [0, 50]-100 <= Node.val <= 100l1 和 l2 均按 非原创 2021-08-03 18:28:47 · 642 阅读 · 0 评论 -
83. 删除排序链表中的重复元素---Python
83. 删除排序链表中的重复元素题目描述:存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。返回同样按升序排列的结果链表。示例 1:输入:head = [1,1,2]输出:[1,2]示例 2:输入:head = [1,1,2,3,3]输出:[1,2,3]提示:链表中节点数目在范围 [0, 300] 内-100 <= Node.val <= 100题目数据保证链表已经按升序排列AC代码:class Lis原创 2021-08-03 17:43:41 · 225 阅读 · 0 评论 -
剑指 Offer 62. 圆圈中最后剩下的数字---Python
剑指 Offer 62. 圆圈中最后剩下的数字题目描述:0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输入: n = 5, m = 3输出: 3示例 2:输入: n = 10, m = 17输出: 2限制:1 <= n原创 2021-08-03 15:46:07 · 195 阅读 · 0 评论 -
剑指 Offer 29. 顺时针打印矩阵(蛇形填数)---Python
剑指 Offer 29. 顺时针打印矩阵题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制:0 <= matrix.length <= 1000 <=原创 2021-08-02 19:19:08 · 278 阅读 · 0 评论 -
剑指 Offer 24. 反转链表--Python
剑指 Offer 24. 反转链表题目描述:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL限制:0 <= 节点个数 <= 5000AC代码:# Definition for singly-linked list.# class ListNode(object):# def __init原创 2021-07-21 17:44:03 · 116 阅读 · 0 评论 -
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面--Python
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例:输入:nums = [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4] 也是正确的答案之一。提示:0 <= nums.length <= 500001 <= nums[i] <= 10000AC代码:class Solution(object): def原创 2021-07-14 10:44:40 · 127 阅读 · 0 评论 -
LeetCode 704. 二分查找-Python
704. 二分查找题目描述:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1提示原创 2021-07-12 18:10:22 · 126 阅读 · 0 评论 -
力扣 最大子序和
题目描述:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [0]输出:0示例 4:输入:nums = [-1]输出:-1示例 5:输入:nums = [-100000]输出:-100000提示:1 &l原创 2021-04-13 20:29:13 · 138 阅读 · 0 评论 -
力扣20. 有效的括号---利用栈击败了 100.00% 的用户
力扣20. 有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = “()”输出:true示例 2:输入:s = “()[]{}”输出:true示例 3:输入:s = “(]”输出:false示例 4:输入:s = “([)]”输出:false示例 5:输入:s = “{[]}”输出:true提示:1 <原创 2021-04-12 21:08:58 · 184 阅读 · 0 评论