
LeetCode
从创建之日起每周至少刷两道题~加油,共勉!
TNTZS666
从无能到平庸要比从一流到卓越需要人们付出多得多的努力。
展开
-
LeetCode刷题(八)——贪心算法
定义贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解 。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择。也就是说,不从整体最优上加以考虑,做出的只是在某种意义上的局部最优解。算法思想将求解问题分成若干子问题对每个子问题求解得到子问题的局部最优解将所有局部最优解合并成原问题的一个解贪心算法是一种对某些求最优解问题的更简单、更迅速的设计技术。贪心算法采用自顶向下,以迭代的方法做出原创 2020-09-05 16:19:29 · 696 阅读 · 0 评论 -
LeetCode刷题(七)——堆
堆的定义堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。这里涉及到一个概念,即完全二叉树。完全二叉树是二叉树的一种特殊的形式,下面是来自百度百科对完全二叉树的释义:一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树。这里面又涉及到满二叉树的定义:满二叉树就是二叉树每一层的结点个数都达到了最大值, 即第i层上有2原创 2020-08-23 15:52:34 · 435 阅读 · 0 评论 -
LeetCode刷题(六)——栈
本周刷了leetCode中可以用栈解决的一些题目。在此之前先简单介绍下栈以及栈在java中的一些常用方法。定义栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。栈是一种先进后出(FILO)的数据结构。java中常见用法1-->p原创 2020-08-16 17:07:34 · 337 阅读 · 0 评论 -
LeeCode刷题(五)
转眼刷题已经是第五周了,由于平时上班,所以每周刷的题并不多,目前进展如下:emmm,平均一周6,7到题。惭愧惭愧。不过这周做的时候看了一个刷题大佬总结的一些经验,下面是他GitHub的链接:https://github.com/liweiwei1419里面有他刷题的一些经验总结心得。我觉的对刚开始刷题的人来说还是挺有帮助的。就比如我一开始的打算是把热题中的简单难度的都刷完,然后再中等,困难。虽然之前几周也都有总结,但是效果感觉不是很好,比如简单做过的题,中等的遇到类似了还是有点束手无措的感觉。看了大佬原创 2020-08-09 15:22:53 · 346 阅读 · 0 评论 -
leetCode刷题(四)
无重复字符的最长子串题目链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/这道题拿到后脑子里想到的只有暴力求解的方法,但显然是不可取的。看了题解之后学到了利用滑动窗口的方法求解。滑动窗口这个词我个人认为名字取的很生动形象。因为窗口我们大家都熟悉,它的大小一般是固定的。滑动窗口的概念在很多算法和应用中都有体现,比如在TCP协议中使用相应的滑动窗口协议实现重传恢复。滑动窗口算法可以用以解决数组原创 2020-08-02 10:52:14 · 222 阅读 · 0 评论 -
leetCode刷题(三)
热题HOT 100 之简单难度总结经过三个星期的时间,把HOT 100中简单难度的题目刷完了,一共23道。在此将这些题目中经常用到的方法总结一下,为之后刷中等难度的题目做准备。简单的题目目前看下来主要还是考察我们对基本数据结构的一些熟悉程度,并没有涉及到很多算法什么的。其中有与二叉树相关的有4道,链表相关的有5道,还有数组哈希表栈等。只有极少数比如爬楼梯这种题目考察了裴波那契数列这种比较特殊的算法。下面总结一下经常用到的解题方法:快慢指针(双指针)法:涉及到的题目如:移动零,回文链表,相交链表原创 2020-07-26 21:18:04 · 209 阅读 · 0 评论 -
LeetCode刷题(二)
爬楼梯题目链接:https://leetcode-cn.com/problems/climbing-stairs/很多题目其实都是于生活息息相关的。这道爬楼梯的题目让我发现,看似简单的楼梯,我其实可以一辈子走的方式不重样(从程序运行结果来看,40阶的台阶就有1亿多种走法)这还是每次只能走一或者二阶台阶的前提下。说实话一开始我是不信的,等到我手动写到8阶楼梯有几种走法的时候,我就信了。确实有点多哈哈~这道题其实就是裴波那契数列的实例,斐波那契数列(Fibonacci sequence),又称黄金分割原创 2020-07-18 16:10:01 · 229 阅读 · 0 评论 -
LeetCode刷题(一)
第一期先刷了几道简单难度的题目练练手,目前来看,简单难度的题目主要是考验我们如何熟练利用一些常见的容器,比如Map,栈等。题目我就不复制了,直接上链接以及我自己AC的代码。简单难度的很多题都是可以通过暴力求解AC,下面的两道题同样可以用暴力求解通过,但是我们可以巧妙的运用一些容器的特性让求解过程的空间或者时间复杂度降低。两数之和https://leetcode-cn.com/problems/two-sum/这道题由于题目中有一个“数组中同一个元素不能使用两遍”的前提,所以我们可以利用哈希map中不原创 2020-07-12 17:05:04 · 216 阅读 · 0 评论