leetcode
damaohao88
这个作者很懒,什么都没留下…
展开
-
力扣Leetcode 21| 合并两个有序链表(Merge Two Sorted Lists)
一看就会,一写就废?详解递归python题解–递归和迭代动画演示 21. 合并两个有序链表官方python解法迭代法——有需要提醒的地方!!!java代码,递归和非递归图文讲解转载 2020-10-21 08:10:58 · 166 阅读 · 1 评论 -
力扣Leetcode 206 | 反转链表(Reverse Linked List)
作者:ame-9链接:https://leetcode-cn.com/problems/reverse-linked-list/solution/python3di-gui-jie-fa-zhu-yi-xu-xian-kuang-zai-shui/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。在思考递归问题的时候,我们要从上到下思考:子问题是什么base case是什么在当前层要干什么对翻转链表来说,以1->2->3->.转载 2020-10-21 07:48:26 · 169 阅读 · 1 评论 -
力扣Leetcode 78 | 子集(Subsets)
参考:https://leetcode-cn.com/problems/subsets/solution/yong-shi-ji-bai-9351de-yong-hu-by-lei-hou-ya/1 迭代法从条件上入手,先只考虑给定数组的 1 个元素的所有子数组,然后再考虑数组的 2 个元素的所有子数组 … 最后再考虑数组的 n 个元素的所有子数组。求 k 个元素的所有子数组,只需要在 k - 1 个元素的所有子数组里边加上 nums [ k ] 即可。例如 nums [1 , 2, 3] 的遍历过转载 2020-10-15 23:47:54 · 211 阅读 · 0 评论 -
递归,递推,迭代的区别
递归程序调用自身的编程技巧称为递归,是函数自己调用自己。使用递归要注意的有两点:递归就是在过程或函数里面调用自身;在使用递归时, 必须有一个明确的递归结束条件, 称为递归出口.递归分为两个阶段:递推:把复杂的问题的求解推到比原问题简单一些的问题的求解;回归:当获得最简单的情况后, 逐步返回, 依次得到复杂的解。优点:代码更简洁清晰。缺点:由于递归需要系统堆栈,所以空间消耗要比非递归代码要大很多。 而且,如果递归深度太大,可能会造成栈溢出。//递归法求第n个数的斐波那契数列long转载 2020-10-14 21:38:44 · 2680 阅读 · 0 评论 -
深究递归和迭代的区别、优缺点及实例对比
目录1.迭代是人,递归是神!2.递归2.1构成递归需具备的条件:2.2递归的基本原理2.3递归优缺点3.例题:走楼梯3.1题目描述:4.求n!递归法5.求n!迭代法6.迭代1.迭代是人,递归是神!从“编程之美”的角度看,可以借用一句非常经典的话:“迭代是人,递归是神!”来从宏观上对二者进行把握。从概念上讲,递归就是指程序调用自身的编程思想,即一个函数调用本身;迭代是利用已知的变量值,根据递推公式不断演进得到变量新值得编程思想。2.递归递归就是函数自己调用自己。2.1构成递归需具备的条件:子问题转载 2020-10-14 21:18:40 · 1811 阅读 · 0 评论 -
递推和迭代的比较
迭代是一种不断用变量的旧值推出新值的过程。例如,程序设计中常用到的计数cnt=cnt+1(或cnt++),就是用变量cnt的值加上1后赋值给cnt;对k的求和s=s+k,就是用变量s的值加上k后赋值给s。这种用变量cnt、s的新值取代旧值的过程,实际上就是迭代。递推实际上也是根据递推关系式不断推出新值的过程,与迭代有很多共同之处。很多迭代过程可以应用递推来解决;反过来,很多递推过程也可以应用迭代来解决。比较递推与迭代,两者的时间复杂度是相同的。所不同的是,递推往往设置数组,而迭代只要设置迭代的简单变量转载 2020-10-14 08:11:39 · 3277 阅读 · 0 评论 -
力扣Leetcode 268 | 缺失的数字(Missing Number)
官方解法视频:力扣Leetcode 268 | 缺失的数字 Missing Number原创 2020-10-11 20:53:28 · 200 阅读 · 0 评论 -
力扣Leetcode1 | 两数之和(Two Sum)
暴力法、一次哈希表和两次哈希表法https://blog.csdn.net/zhushaojiecumt/article/details/102846196视频:https://www.bilibili.com/video/BV1Li4y1E7gT?p=1双指针法如果列表是无序的,需要先排序,使用双指针,分别指向头、尾。如果两数之和大于target,尾指针前移,如果两数之和小于target,首指针后移。class Solution: def twoSum(self, nums: List原创 2020-10-11 16:29:08 · 249 阅读 · 0 评论