LeetCode
分享LeetCode上的题解
狂奔的菜鸡
知行合一,格物致知。
展开
-
多多的魔术盒子(思想及python实现)
[编程题]多多的魔术盒子时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 256M,其他语言512M多多鸡有N个魔术盒子(编号1~N),其中编号为i的盒子里有i个球。多多鸡让皮皮虾每次选择一个数字X(1 <= X <= N),多多鸡就会把球数量大于等于X个的盒子里的球减少X个。通过观察,皮皮虾已经掌握了其中的奥秘,并且发现只要通过一定的操作顺序,可以用最少的次数将所有盒子里的球变没。那么请问聪明的你,是否已经知道了应该如何操作呢?输入描述:第一行,有1个整数T,表示测原创 2020-09-10 16:47:26 · 298 阅读 · 0 评论 -
快速幂(例题与详解)
关于快速幂即快速算某个数的多少次幂,我第一次接触时,特别懵比,Leetcode中有一道这样的题,当时用了暴力法,没有通过,超出时间限制。暴力法:class Solution(object): def myPow(self, x, n): """ :type x: float :type n: int :rtype: float """ output = x if n>0:原创 2020-08-30 16:52:20 · 529 阅读 · 1 评论 -
LeetCode:198. 打家劫舍 python实现
1. 题目描述 198. 打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房原创 2020-08-25 22:25:11 · 267 阅读 · 0 评论 -
LeetCode: 最大子序和 python实现
1. 题目描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。2. 代码实现动态规划:执行用时 :24 ms, 在所有 Python 提交中击败了89.07%的用户内存消耗 :13.4 MB, 在...原创 2020-05-07 11:55:00 · 314 阅读 · 1 评论 -
LeetCode: 最长有效括号 python实现
目录1. 题目描述2. 代码实现2.1 动态规划2.2 栈实现1. 题目描述 最长连续有效括号,给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。示例 1:输入: “(()”输出: 2解释: 最长有效括号子串为 “()”示例 2:输入: “)()())”输出: 4解释: 最长有效括号子串为 “(...原创 2020-05-06 21:50:43 · 710 阅读 · 0 评论 -
LeetCode: 重排链表 python实现
1. 题目描述143.重排链表给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→…你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:给定链表 1->2->3->4, 重新排列为 1->4->2->3.示例 2:给定链表 1->2->3->...原创 2020-04-25 17:49:28 · 531 阅读 · 0 评论 -
LeetCode: 环形链表II python实现
1. 题目描述142.环形链表 II 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。说明:不允许修改给定的链表。示例 1: 输入:head = [3,2,0,-4], pos = 1 输出:t...原创 2020-04-25 14:11:31 · 205 阅读 · 0 评论 -
LeetCode: 环形链表 python实现
1. 题目描述 给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 示例 1:输入:head = [3,2,0,-4], pos = 1输出:true...原创 2020-04-24 11:44:42 · 184 阅读 · 0 评论 -
LeetCode: 反转链表 II python实现
1. 题目描述92.反转链表 II 反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明: 1 ≤ m ≤ n ≤ 链表长度。示例: 输入: 1->2->3->4->5->NULL, m ...原创 2020-04-24 10:21:33 · 323 阅读 · 0 评论 -
LeetCode: 分隔链表 python实现
1. 题目描述分隔链表给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->52. 代码实现执行用时 :16 ms,...原创 2020-04-22 18:34:26 · 214 阅读 · 0 评论 -
LeetCode: 删除排序链表中的重复元素 python实现
1. 题目描述82.删除排序链表中的重复元素 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1: 输入: 1->2->3->3->4->4->5 &n...原创 2020-04-22 17:09:18 · 312 阅读 · 0 评论 -
LeetCode: 两两交换链表中的节点 python实现
1. 题目描述旋转链表给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1: 输入: 1->2->3->4->5->NULL, k = 2 输出: 4->5->1->2->3->NU...原创 2020-04-21 22:26:04 · 123 阅读 · 0 评论 -
LeetCode: K 个一组翻转链表 python实现
1. 题目描述K 个一组翻转链表: 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例: 给你...转载 2020-04-21 19:58:27 · 481 阅读 · 0 评论 -
LeetCode: 两两交换链表中的节点 python实现
1. 题目描述两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例: 给定 1->2->3->4, 你应该返回 2...原创 2020-04-21 11:09:48 · 414 阅读 · 0 评论 -
LeetCode: 合并K个排序链表 python实现
1. 题目描述 合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->62. 代码实现逐一两两合并链表: ...原创 2020-04-20 10:43:24 · 204 阅读 · 0 评论 -
LeetCode: 合并两个有序链表 python实现
1. 题目描述 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->42. 代码实现 执行用时 :28 ms...原创 2020-04-16 22:54:16 · 450 阅读 · 0 评论 -
LeetCode: 有效的括号 python实现
1. 题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:...原创 2020-04-16 18:46:30 · 228 阅读 · 0 评论 -
LeetCode: 删除链表的倒数第N个节点 python实现
题目描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶: 你能尝试使用一趟扫描实现吗?代码实现执行用时 :24 ms, 在所有 Python 提交中击败了68...原创 2020-04-12 22:47:03 · 541 阅读 · 0 评论 -
LeetCode: 四数之和 python实现
题目描述给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集...原创 2020-04-11 19:00:01 · 284 阅读 · 0 评论 -
LeetCode: 电话号码的字母组合python实现
17. 电话号码的字母组合题目描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。...原创 2020-04-10 22:23:05 · 487 阅读 · 0 评论 -
LeetCode: 最接近的三数之和 python实现
16. 最接近的三数之和题目描述给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).代码实现...原创 2020-04-09 23:08:51 · 162 阅读 · 0 评论 -
LeetCode: 最长公共前缀 python实现
14. 最长公共前缀1. 题目介绍编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明::所有输入只包含小写字母 a-z 。2. 代码实现方法1...原创 2020-04-08 13:11:19 · 142 阅读 · 0 评论 -
LeetCode: 罗马数字转整数 python实现
13. 罗马数字转整数罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,...原创 2020-04-07 22:35:49 · 293 阅读 · 0 评论 -
LeetCode: 整数转罗马数字 python实现
12. 整数转罗马数字罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,...原创 2020-04-06 15:44:42 · 119 阅读 · 0 评论