leetcode
Fly嘉
这个作者很懒,什么都没留下…
展开
-
数组(哈希表)
哈希思想:我们定义好一个哈希函数,然后把一些数据对应的key输入到哈希函数会得到一个index,key可以自己设置。创建一个哈希表,来保存好index和这个index对应到的数据。可能不同的数据却生成了一样的index,这时候就会面临冲突,我们可以通过一些方法来解决。我们主要是写好哈希函数和当index冲突的时候的处理方法。我这个使用的是直接寻址法 两数之和(1)class ...原创 2019-01-03 17:27:04 · 7953 阅读 · 2 评论 -
单链表
链表就是一组被称为结点的数据元素组成的数据结构,每个结点都包含结点本身的信息和指向下一个结点的地址。由于每个结点都包含了可以链接起来的地址信息,所以用一个变量就能够访问整个结点序列。第一个结点一般没有存储信息只是存储了指向下一个结点的地址的指针,称为头结点。链表的最后一个如果接上上面某一个结点的地址,就是一个单行循环链表,如果不接,就是丢空指针域,那就是单链表。链表的作用: 顺序表的构建需要预...原创 2019-01-04 20:05:53 · 106 阅读 · 0 评论 -
队列、堆思想
队列定义队列(queue)是一种采用先进先出的数据结构。顾名思义就是想排队那样,一个轮着一个。例如去游乐园玩的实话,先排队的可以是先玩,后面的后玩。队列和栈是会有点联系队列有着数组实现和链表实现两个方式。先说数组实现数组实现在栈中使用top变量记录栈顶的位置,队列就使用front和rear来记录队列的头元素和尾元素链表实现队头指针( ...原创 2019-01-05 20:02:05 · 519 阅读 · 0 评论 -
二叉树的遍历
二叉树是一种非常重要的数据结构,很多数据结构是以根据二叉树来进行演化的。现在我们先介绍二叉树的遍历,有深度遍历和广度遍历(也就是平常说的层次遍历),深度遍历有前序、中序以及后序三种遍历方法。因为数的定义本身就是递归定义,因此采用递归的方法实现树的三种遍历不仅容易理解而且代码很简洁,对于层次遍历,需要其他数据结构的支撑,比如堆。四种主要的遍历思想:前序遍历:根结点 —> 左子树 —>...原创 2019-01-06 10:17:09 · 314 阅读 · 0 评论 -
递归思想和动态规划思想
递归:1.介绍递归算法是一种直接或者间接调用自身函数或者方法的算法。其中调用分为直接调用和间接调用,直接调用是指在函数体中调用自身,间接调用是调用别的函数,而这些函数调用函数本身。这样可以把很长的冗余的代码进行了简化。递归算法解决问题的特点:递归就是方法里调用自身。在使用递增归策略时,必须有一个明确的递归结束条件,称为递归出口。递归算法解题通常显得很简洁,但递归算法解题的运...原创 2019-01-07 20:53:05 · 543 阅读 · 0 评论 -
递归算法实战
17写的很匆忙,有事情,解题思路我后面再补,我先上交class Solution: def letterCombinations(self, digits): """ :type digits: str :rtype: List[str] "&原创 2019-01-08 23:12:47 · 135 阅读 · 0 评论 -
0-1背包问题实现(python)和Palindrome Partitioning II的完成
01背包问题一. 问题描述有n 个物品,它们有各自的重量和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和?(人话就是:一个小偷去商店偷东西,但是由于带来的袋子不够大,装不完所有的东西,那就怎么可以偷到又多又值钱的东西)二. 总体思路根据动态规划解题步骤(问题抽象化、建立模型、寻找约束条件、判断是否满足最优性原理、找大问题与小问题的递推关系式、填表、寻找解组成)找出01背...原创 2019-01-09 21:51:29 · 241 阅读 · 0 评论