
LeetCode
文章平均质量分 70
每日一道力扣题
Neal_caffrey0725
星光不问赶路人,时光不负有心人!
展开
-
LeetCode-518-零钱兑换二
518 coin-change-2 零钱兑换 II力扣索引518. 零钱兑换 II Medium原始问题**You are given coins of different denominations and a total amount of money. Write a function to compute the number of combinations that make up that amount. You may assume that you have infinite num原创 2021-01-11 15:17:39 · 383 阅读 · 0 评论 -
DFS最快求解零钱规划问题
力扣索引322本方法采用DFS加剪枝,快速求解详解参见语雀文档:https://www.yuque.com/nealcaffrey0725from time import *begin=time()def coinChange7( coins, amount): def dfs(index, left_amount, cnt): nonlocal ans if left_amount == 0: ans = min(cnt, ans原创 2021-01-04 16:23:20 · 132 阅读 · 0 评论 -
LeetCode-322-零钱兑换
零钱兑换力扣索引322. 零钱兑换 518. 零钱兑换 II零钱兑换原始问题给定不同面额的硬币 coins和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。你可以认为每种硬币的数量是无限的。下面我将以下图举例说明,其中amount=11,coins=[1,2,3],很显然我们在脑海中轻轻的过一遍就能想出由三个面额为3的硬币加上一个面额为2的硬币就组成了最优的答案:4枚、,空间复杂度完全不可信。具体的解释参考我的语雀文档吧,目前正在逐步完善中,共同学习一起加油权限交流见首页置顶...原创 2020-12-30 12:32:10 · 116 阅读 · 0 评论 -
LeetCode-18-四数之和
四数之和题目结果、Code官方解去重剪枝详解,看不懂来打我!每天看视频,刷题。但是动手实践的时候问题就出来了,今天磨磨蹭蹭的虽然写出来了代码,但是效果很差,深刻的体会:不能为了学习而学习,要真真正正的去理解,以后放慢速度,哪怕三天学一题,只要学会,深刻的记住就是赚的题目结果、Codeclass Solution: def fourSum(self, nums: List[int], target: int) -> List[List[int]]: nums.sor原创 2020-12-25 16:05:28 · 94 阅读 · 0 评论 -
LeetCode-17-电话号码的字母组合
电话号码的字母组合题目个人解运行结果官方解:回溯算法[回溯+队列 图解](https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/solution/hui-su-dui-lie-tu-jie-by-ml-zimingmeng/)这不就是DFS与BFS吗,真的要学会活学活用啊题目个人解虽然思路清晰,一遍过。但是感觉有点复杂了,学习新知识。class Solution: def letterCombinati原创 2020-12-23 15:08:55 · 102 阅读 · 0 评论 -
LeetCode-16-最接近的三数之和
最接近的三数之和题目个人解--超时官方解画解算法改进解题目个人解–超时依稀记得昨天自己有想法,然后今天用了算是贪心算法吧。思路清晰,代码一遍过。但是用例超时了。class Solution: def threeSumClosest(self, nums: List[int], target: int) -> int: Sum,ans=abs(nums[0]+nums[1]+nums[2]-target),nums[0]+nums[1]+nums[2]原创 2020-12-21 16:57:53 · 122 阅读 · 0 评论 -
LeetCode-15-三数之和
三数之和题目个人错误解官方解画解算法修改后的正确个人解题目个人错误解思想是先对数组进行重新构造归类,将正数负数0分开处理。这样就会出现三种情况:一正一负的相反数加上0三个0两正一负两负一正nums = [-1,0,1,2,-1,-4,-2,-3,3,0,4]if len(nums)<3: print('return []')Negnums=[]Posnums=[]Zero=0ans=[]for i in nums: if i>0: Pos原创 2020-12-20 22:27:08 · 99 阅读 · 0 评论 -
LeetCode-14-最长公共前缀
最长公共前缀题目个人解官方给出了四种解法,可以仔细了解了解。一种java的骚操作画解算法:用的是横向比较题目个人解class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: ans='' if len(strs)==0: return ans for i in range(min([len(i) for i in strs])):原创 2020-12-18 15:44:42 · 113 阅读 · 1 评论 -
LeetCode-13-罗马数字转整数
罗马数字转整数题目个人解这个题目就很秀一种娱乐代码,仅供娱乐,小聪明而已。画解算法题目个人解有了昨天的基础,今天这种题也就是变个形式而已,本质都是一样的。本题要注意的就是最好一个指针再数组索引的时候可能出现数组下标越界异常(一开始就应该想到)。class Solution: def romanToInt(self, s: str) -> int: mp={"M":1000,"CM":900,"D":500,"CD":400,"C":100,"XC":90,原创 2020-12-17 14:01:58 · 134 阅读 · 1 评论 -
LeetCode-12-整数转罗马数字
整数转罗马数字题目个人解官方解:贪心算法,硬编码数字贪心算法的另一种实现方法,大同小异吧最快的解我的改进解内存最快解题目个人解估计第一感觉都是跟我一样的想法,没先到执行结果竟然还还凑合,但是空间占用有点大。class Solution: def intToRoman(self, num: int) -> str: Str='' dic={'M':1000,'CM':900,'D':500,'CD':400,'C':100,'XC':90,原创 2020-12-16 14:41:53 · 106 阅读 · 0 评论 -
LeetCode-11-盛最多水的容器
盛最多水的容器题目个人解第二个解,双指针法详解很棒的留言,说到了心坎题目个人解一分钟出想法,三分钟出答案,第四分钟测试,五分钟出结果,自己懵逼。我以为大家都会想这种做法,然后可能运行效率很低,击败10%左右的人。结果力扣平台不讲武德啊先看代码,就是一个O(n2)的循环遍历。class Solution(object): def maxArea(self, height): """ :type height: List[int] :rt原创 2020-12-15 15:29:11 · 123 阅读 · 0 评论 -
LeetCode-10-正则表达式匹配
正则表达式匹配题目个人解详解动态规划五行代码????手画图解2020年12月14日未解出改题题目个人解# anaconda 运行代码,因为在LeetCode中未运行通过,就不放LeetCode的代码了s='ab'p='.*c'def isMatch(s,p): Ssize,Psize=len(s),len(p) Shead,Phead=0,0 if Psize==0 or Ssize==0: return False while Shea原创 2020-12-14 19:44:46 · 111 阅读 · 0 评论 -
LeetCode-09-回文数
回文数问题个人解题思路很梦幻的结果一点都不拖泥带水的解问题个人解题思路当时很简单的想法就是求余比较,然后突然想到循环做除法开销很大,然后就想到了用list存放元素,然后利用python的切片从两头开始比较,(想到list的时候就想到可能会拖慢时间)class Solution(object): def isPalindrome(self, x): """ :type x: int :rtype: bool """原创 2020-12-13 15:06:49 · 174 阅读 · 0 评论 -
LeetCode-08-字符串转换整数(atoi)
字符串转换整数(atoi)题目个人解大佬一行解官方解-自动机的概念题目个人解收昨天第七题的影响,看到这个题就浮现了这个比较简单直接的解法。class Solution(object): def myAtoi(self, s): """ :type s: str :rtype: int """ s+='#' #保证下面while循环数组不超过界限 a=list(str(s)原创 2020-12-11 15:40:50 · 236 阅读 · 0 评论 -
LeetCode-07-整数反转
整数反转题目个人解画解题目个人解首先我想到得就是数字转字符然后翻转,当然也是这么实现的,然后这个数值范围的限制让我明白本题肯定是有其余好方法的。等我写完我的解,就可去看大神的解法了,又要叫智商税了。class Solution(object): def reverse(self, x): """ :type x: int :rtype: int """ a=list(str(x)) if a[0原创 2020-12-10 13:40:18 · 149 阅读 · 0 评论 -
LeetCode-06-Z字形变换
Z字形变换题目个人见解题目个人见解class Solution(object): def convert(self, s, numRows): """ :type s: str :type numRows: int :rtype: str """ Pass=0 j=0 data=list(s) length=len(data) if原创 2020-12-09 18:12:53 · 108 阅读 · 0 评论 -
LeetCode-05-最长回文子串
最长回文子串这题吧首先肯定想到的是暴力破解,也就是循环所有长度大于二的字串,然后判断每一个字串是否是回文字串。但是我知道肯定不是最优解,但是无奈知识储备有限,还真的是没有想到很好的解法。很高兴,今天又被虐了。向大佬学习动态规划,中心扩散,Manacher 算法官方视频讲解,有点快,只是代码向大佬敬礼,学到就是赚到权限&免责&交流声明...原创 2020-12-03 16:38:04 · 79 阅读 · 0 评论 -
LeetCode-04-寻找两个正序数组的中位数
寻找两个正序数组的中位数题外话这题上去就看到困难难度,有点慌。分析一波后感觉也不是很难啊。然后一波操作猛如虎,一看战绩0杠5这个第一次解答错误是我以为set集合会自动排序,但是当有负数的时候set集合出现了错误。第二次错误我才明天这个题的意思。最开始的理解是两个数组合并后要去掉重复元素,结果发现并不是这样,而是直接拼接,这就很尴尬,毕竟五个例子都没有体现出这一点。可能就是这题困难的原因(小声bb)。那么先给我自己写的去掉重复元素找中位数的代码class Solution: def原创 2020-12-02 16:50:21 · 86 阅读 · 0 评论 -
LeetCode-03-无重复字符的最长字串
努力学算法的第三天,冲冲冲。经过前两天的熟悉今天第三题:1,考虑了两分钟2,百度了一下“python字符串转数组”3,五分钟写出了第一次代码,有点高兴的太早,在“ ”这个地方出错了4,修改了三分钟,主要是调整循环的范围,5,第二次提交,通过。虽然没有超越多少人,但是值得小小的表扬一下。思路从头开始遍历每一个字符放入到hashmap中,然后依次扫描后续每一个字符继续放入到hashmap中,直到某一字符已经存在为止。得到以该字符开头对应的最大无重复字串。循环得到无重复字符的最长字串我的解,原创 2020-12-01 15:51:18 · 112 阅读 · 0 评论 -
LeetCode-02-两数相加
题目要求求解第一中方法这个方法看完之后给人感觉就是很清爽,代码很简洁,没有多余的废话。配上网友的注释,我就直接借鉴了,真的是没有修改的余地。# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def addTwo原创 2020-11-30 15:01:42 · 109 阅读 · 0 评论 -
LeetCode-01-两数之和
解:1,官方基础解2,仅供个人学习所用原创 2020-11-28 19:59:53 · 113 阅读 · 0 评论