博客专栏  >  编程语言   >  总结经典数据结构与算法(LeetCode)

总结经典数据结构与算法(LeetCode)

LeetCode经典算法总结,总结了一些比较好的思路

关注
2 已关注
22篇博文
  • Leetcode-Serialize and Deserialize Binary Tree

    解题思路: 利用先序遍历递归遍历二叉树,对于空节点也将其作为一个节点看待,这样序列化的二叉树可以看成是一个完全二叉树。 反序列化的时候,递归解析字符串,根据 根节点--左子树--右子树的规则构造二...

    2016-09-01 16:13
    349
  • 375. Guess Number Higher or Lower II

    We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have ...

    2016-08-30 10:09
    434
  • Count Numbers with Unique Digits

    解题思路一: 找规律,动态规划。 f(n):长度为n的数字中包含的独立数位的数字个数。 f(1) = 10 (0,1,2,3,4,...9) f(2)=9*9  ,因为十位只能是(1,2,.....

    2016-08-17 11:16
    310
  • Next Permutation

    原理简介: 1,从数组尾端开始遍历,找到第一个nums[i] 2,要求下一个子序列,那么我们需要在1中得到的单调子数组中找到一个比nums[i]大的数字,并且要尽量小。这样才能保证是下一个子序列。由于...

    2016-08-16 17:36
    448
  • 142. Linked List Cycle II

    解法一: 如果链表中环 有n个结点,指针P1在链表上向前移动n步,然后两个指针以相同的速度向前移动。  当第二个指针指向环的入口结点时,第一个指针已经围绕着环走了一圈又回到了入口结点。 所以...

    2016-08-10 16:00
    534
  • 377. Combination Sum IV

    解题思路: 该题对时间有要求,我们使用之前用过的回溯法将会超时。因为回溯法遍历所有种可能,类似于穷举,时间效率肯定不高。 换个思路,我们采用动态规划的思想来看看。 动态规划状态方程: dp[t...

    2016-08-09 15:47
    590
  • 282. Expression Add Operators

    解题思路:深搜 遍历所有可能的情况,终止条件为表达式计算的结果等于target。注意,这里要使用long 类型保存整数,否则会溢出。我在vs2013,win32模式下使用long同样不能通过 "3...

    2016-08-08 19:08
    429
  • 166. Fraction to Recurring Decimal

    今天华为出了这么一道面试题,当时我一紧张,没写出来。。。关键是记录循环小数,采用map结构。 注意leetcode上这道题要防止溢出。将int 转换为long。一般来说int为4个字节,如果long...

    2016-06-24 14:29
    211
  • 链表中倒数第K个节点

    解决思路:遍历一遍,获取链表长度,然后再遍历一遍,找到第len-k个节点即为倒数第K个节点/*struct ListNode { int val; struct ListNod...

    2016-06-12 12:57
    372
  • 1068. Find More Coins (30)

    题意:给定不同面额的硬币若干个,要求找出一个硬币序列Vi满足V1 <= V2 <= ... k such that V1 + V2 + ... + Vk = M. 分析:此题有些类似我们之...

    2015-03-15 23:54
    1821
  • Perfect Squares

    题解:求平方和等于n的数的最小个数 思路:动态规划解决 状态转移方程:dp[i+j*j]==min(dp[i+j*j],dp[i]+1); class Solution { public...

    2015-10-08 19:57
    333
  • Sum Root to Leaf Numbers

    /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left...

    2015-09-23 20:57
    304
  • 【leetcode】290. Word Pattern

    解题思路:使用两个map结构,注意要防止abba dog dog dog dog 的情形,所以需要两个Map class Solution { public: bool wordPatt...

    2015-10-09 00:15
    1829
  • Leetcode Clone Graph

    //用BFS遍历图所有结点,使用unordered_map结果存储已经构造的结点,queue存放还没有访问的结点。 /** * Definition for undirected graph. *...

    2015-10-04 13:25
    204
  • leetcode Course Schedule

    提示中说了关键点在于求图中是否存在环的问题,典型的拓扑排序。有关拓扑排序的问题可以参考这篇文章点击打开链接 。图的数据结构有邻接表和邻接矩阵,选择邻接表可以很好的表明结点之间的依赖关系。 判断图是否可...

    2015-10-04 15:15
    360
  • 【Lintcode|leetcode】245 Subtree

    /** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, ...

    2015-09-23 00:01
    1488
  • Unique Paths II

    //动态规划方程: res[j]+=res[j-1] class Solution { public: int uniquePathsWithObstacles(vector>& obst...

    2015-10-11 13:53
    360
  • Majority Element

    class Solution { public: int majorityElement(vector& nums) { unordered_map map; ...

    2015-10-22 21:46
    265
  • Different Ways to Add Parentheses

    解题思路:分治法,使用Map 避免重复计算 class Solution { public: map> mp; //使用map避免递归过程中重复计算 vector diffWaysT...

    2016-05-29 12:47
    254
  • 215. Kth Largest Element in an Array

    题意,求数组中的第K大的数。 思路1:利用快速排序的思路,找到一个下标为n-K的下标index,前面从下标0至n-K-1的数均小于index,该下标的值即为第K大的数字 思路2:利用堆或者红黑树来解答...

    2016-05-28 21:20
    278

img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部