zoukankan      html  css  js  c++  java
  • leetcode刷题总结101-150

    101. 对称二叉树

      描述: 

        

       思路: 递归。考虑左子树的最右节点和右子树的最左节点对称。

    102. 二叉树的层序遍历

      描述:

        

       思路:递归。维护一个List<List<Node>> (List.get(迭代次数).add(xxxx))

    103. 二叉树的锯齿形层次遍历

      描述: 

        

       思路:递归。先右再左。

    104. 二叉树的最大深度

      描述:

        

       思路: 递归

    105. 从前序与中序遍历序列构造二叉树

    106. 从中序与后序遍历序列构造二叉树

    107. 二叉树的层次遍历 II

      描述:

        

       思路:递归。

    108. 将有序数组转换为二叉搜索树

      描述:

        

       思路: 因为是平衡二叉树,所以根节点先求出(index=low+(high-low)/2),然后分治递归。

    109. 有序链表转换二叉搜索树

      描述:

        

       思路:快慢指针求出index。

    110. 平衡二叉树

      描述:

        

       思路:递归

    111. 二叉树的最小深度

      描述:

        

       思路:递归+判断(当前深度大于已经知道的最小,直接跳出。)

    112. 路径总和

      描述:

        

       思路:回溯。

    113. 路径总和 II

      描述:

        

       思路;回溯。

    114. 二叉树展开为链表

      描述;

        

       思路:把左子树接到根节点的右边,原右子树接到左子树的最右边。递归。

    115. 不同的子序列

      描述:

        输入:S = "rabbbit", T = "rabbit"
        输出:3

      思路:动态规划。dp[i][j]表示s[0-i]表示t[]0-j[的次数

    116. 填充每个节点的下一个右侧节点指针

      描述:

        

       思路:递归。每次递归把当前的右节点指向当前的next的左节点。

    117. 填充每个节点的下一个右侧节点指针 II

      描述:

        

       思路:递归。每次把当前的左节点指向右节点(若右节点为空,指向当前节点的next的做左节点,若为空,为右节点。)

    118. 杨辉三角

    119. 杨辉三角 II

    120. 三角形最小路径和

    思路:动态规划

    121. 买卖股票的最佳时机

      描述:

        

       思路:单调栈。动态规划.dp[i][j][k]第i天j为交易次数,k为此时的股票(保持。卖出)的状态。此题k的个数=1

    122. 买卖股票的最佳时机 II

      描述:

        

       思路:贪心。

    123. 买卖股票的最佳时机 III

      描述:

        

       思路:动态规划。

    124. 二叉树中的最大路径和

      描述:

        

       思路:某一结点的最大路径和=此节点的value+左节点的最大贡献值+右节点的最大贡献值。

    125. 验证回文串

      描述:

        

       思路:双指针

    126. 单词接龙 II

      描述:

        

       思路:构件图,遍历(DFSBFS)。

    127. 单词接龙

      描述:

        

       思路:构件图,BFS找最短路径

    128. 最长连续序列

      描述:

        输入: [100, 4, 200, 1, 3, 2]
        输出: 4

        解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。

      思路:第一遍先存到hashset。然后看num-1是否存在sets,然后开始num+1  +2找

    129. 求根到叶子节点数字之和

      描述:

        

       思路:递归

    130. 被围绕的区域

      描述:

        

       思路:四个边保持,内部遍历(遇到O,判断上下左右是否有x)

    131. 分割回文串

      描述:

        

      思路:回溯。

    132. 分割回文串 II

       描述:

        输入: "aab"
        输出: 1
        解释: 进行一次分割就可将 s 分割成 ["aa","b"] 这样两个回文子串。

       思路:动态规划。dp[i]表示0-i分隔的次数。然后对每次情况判断是否为回文。定义状态转移。

    133. 克隆图

      描述:

        

       思路: 遍历即可。

    134. 加油站

      描述:

        

       思路:cost[i]>gas[i]跳過,找起始點。

    135. 分发糖果

      描述:

        

       思路:从左边和从右边分别开始遍历。然后取最高。

    136. 只出现一次的数字

      描述:

        输入: [2,2,1]
        输出: 1

      思路: 全部异或。

    137. 只出现一次的数字 II

      描述:

        输入: [2,2,3,2]
        输出: 3

      思路:hashmap。或者:   通过once_seen;twice_seen来记录出现1次和2次。

    138. 复制带随机指针的链表

      描述:

        

       思路:相当于把每个先插入其源节点的后面。7,7,13,13.。。。然后再拆分。

    139. 单词拆分

      描述:

        输入: s = "leetcode", wordDict = ["leet", "code"]
        输出: true
        解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。
      思路:回溯+剪枝。动态规划

    140. 单词拆分 II

      描述:

        输入:
          s = "catsanddog"
          wordDict = ["cat", "cats", "and", "sand", "dog"]
        输出:
          [
            "cats and dog",
            "cat sand dog"
          ]

      思路:回溯+剪枝

    141. 环形链表

      描述:

        

       思路:hasseen(set)

    142. 环形链表 II

      描述:

        

       思路:双指针+hasseen

    143. 重排链表

      描述:

        给定链表 1->2->3->4->5, 重新排列为 1->5->2->4->3.

      思路:快慢指针确定中间节点,然后分隔,将后面的逆序。然后拼接。

    144. 二叉树的前序遍历

    145. 二叉树的后序遍历

      思路:递归。

    146. LRU缓存机制

      思路:hashmap+linkedList. (Linkedhashmap)

    147. 对链表进行插入排序

      思路:指针遍历插入即可。

    148. 排序链表

      思路;二分。

    149. 直线上最多的点数

      描述:

        

       思路:N^2的复杂度。计算斜率是否相等,

    150. 逆波兰表达式求值 

      思路:栈

  • 相关阅读:
    爬取校园新闻首页的新闻的详情,使用正则表达式,函数抽离
    爬取校园新闻首页的新闻
    中文词频统计
    综合练习:英文词频统计
    字符串练习
    1.用Hive对爬虫大作业产生的文本文件2.用Hive对爬虫大作业产生的csv文件进行数据分析,写一篇博客描述你的分析过程和分析结果。
    Hadoop综合大作业加上以前漏掉的作业
    爬虫大作业
    获取全部校园新闻
    爬取校园新闻首页的新闻
  • 原文地址:https://www.cnblogs.com/dhName/p/13252260.html
Copyright © 2011-2022 走看看