Skip to content

lkxyyjx/leetCodeInJava

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 

Repository files navigation

leetCodeInJava

  • 是时候开始刷题了!

dp问题一般思路与解法

  • 【状态】与【选择】
    • dp问题一般需要抓住【状态】与【选择】,【状态】就是在确定的一组具体参数下能确定目标结果;【选择】就是一些具体的操作
    • 【选择】会导致【状态】的变化,也可以由此得出dp问题的状态转移方程
    • 找出状态转移方程后,再明确base condition(或者说是边界条件),这个时候dp问题如何解决一般就非常明晰了
  • 实现细节
    • 可以基于【选择】去循环计算出每一个状态,也可以基于【状态参数】去循环计算出每一个状态
    • 递归实现时,需要避免重复的状态计算,避免多余的计算和减少调用栈,可以设置一个数组保存已经计算过的【状态】

回溯问题的一般思路与解法

  • 找到问题的一般过程与边界条件,使用递归实现时先确定递归参数,注意留意过程中的对象变量
  • 明确哪些操作是要递归前完成的,哪些操作是需要在递归后完成的
  • 递归实现时,如果担心调用栈过长或者理不清递归逻辑,过程可以使用循环+stack替代实现

二叉树问题的一般思路与解法

  • 二叉树问题切入点无非就是从几种遍历来考虑问题
    • 搜索树的中序遍历是排序的
    • 前序遍历的第一个元素是根
  • 再就考虑递归中需要做什么,例如
    • 哪些变量需要记录下来
    • 递归函数参数如何设计
    • 返回值r,一般考虑为是需要左右子树的rLeft,rRight计算出来以后才可以得到的值。例如判断平衡二叉树时返回值可以是该树的深度,-1表示不平衡, r = rLeft != 1 && rRight != -1 ? (abs(rLeft - rRight) > 1 ? -1 : max(rLeft, rRight)) : -1

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy