Java算法刷题笔记总结

news/2024/7/20 22:37:29 标签: 算法, java, 深度优先, leetcode, 动态规划

最近刷力扣的一部分规划和总结在这里记载一下:

文章目录

一、 回溯算法

1.Java实现回溯算法入门

(Java实现回溯算法入门(排列+组合+子集))

2.Java实现回溯算法进阶

(Java实现回溯算法进阶(搜索))
回溯算法是对树形或者图形结构执行一次深度优先遍历,实际上类似枚举的搜索尝试过程,在遍历的过程中寻找问题的解。

深度优先遍历有个特点:当发现已不满足求解条件时,就返回,尝试别的路径。此时对象类型变量就需要重置成为和之前一样,称为「状态重置」。

许多复杂的,规模较大的问题都可以使用回溯法,有「通用解题方法」的美称。实际上,回溯算法就是暴力搜索算法,它是早期的人工智能里使用的算法,借助计算机强大的计算能力帮助我们找到问题的解。

回溯算法主要涉及的几个知识点:

  1. 深度优先遍历,包括树的深度优先遍历和图的深度优先遍历。
  2. 数据机构–栈,用栈来存储选取过的数据(Java中一般使用Deque来实现栈)
  3. 剪枝的重要性,减小复杂度,重复性问题

例题就看上面的刷题笔记链接,刷题时间为(2021.10.27-2021.11.4),部分题目会后期更新。

二、动态规划

1.算法(Java)——动态规划

算法(Java)——动态规划

动态规划(英语:Dynamic programming,简称 DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。

动态规划常常适用于有重叠子问题最优子结构性质的问题,并且记录所有子问题的结果,因此动态规划方法所耗时间往往远少于朴素解法。

动态规划自底向上自顶向下两种解决问题的方式。自顶向下即记忆化递归,自底向上就是递推

使用动态规划解决的问题有个明显的特点,一旦一个子问题的求解得到结果,以后的计算过程就不会修改它,这样的特点叫做无后效性,求解问题的过程形成了一张有向无环图。动态规划只解决每个子问题一次,具有天然剪枝的功能,从而减少计算量。

每天在学习动态规划知识后,在动态规划入门练习题中进行刷题练习。

2. Java动态规划算法从入门的到熟练

(Java动态规划算法从入门的到熟练)

3. 动态规划之背包问题——01背包

3. 动态规划之背包问题——01背包

4. 动态规划之背包问题——完全背包

动态规划之背包问题——完全背包

5. 动态规划之打家劫舍系列问题

动态规划之打家劫舍系列问题

6. 动态规划之股票买卖系列问题

动态规划之股票买卖系列问题

7. 动态规划之子序列问题

动态规划之子序列问题

三、数组

1. 算法分析之数组问题

算法分析之数组问题

2. 算法(Java)——二分法查找

算法(Java)——二分法查找

四、链表

1. 算法分析之链表问题

算法分析之链表问题

2. 算法(Java)——链表

算法(Java)——链表

3. 算法(Java)——双指针

算法(Java)——双指针

五、哈希表

1. 算法分析之哈希表

算法分析之哈希表

2. 算法(Java)——HashMap、HashSet、ArrayList

算法(Java)——HashMap、HashSet、ArrayList

六、字符串

1. 算法(Java)——字符串String

算法(Java)——字符串String

2. 算法分析之字符串

算法分析之字符串

七、栈和队列

1. 算法分析之栈和队列

算法分析之栈和队列

2. 算法(Java)——栈、队列、堆

算法(Java)——栈、队列、堆

八、二叉树

1. 算法(Java)——二叉树

算法(Java)——二叉树

2. 算法分析之二叉树

算法分析之二叉树

3. 算法分析之二叉树遍历

算法分析之二叉树遍历

4. 算法分析之二叉树常见问题

算法分析之二叉树常见问题

九、贪心算法


http://www.niftyadmin.cn/n/1727861.html

相关文章

asp.net sqlite unable to open database file的解决方案

sqlite unable to open database file意思是连接数据库的时候无法打开 第一种思路:存放数据库的文件夹没有权限,app_data需要设置一下权限,设置成everyone权限。 第二种思路:是数据库连接没有使用绝对路径, 请参考as…

Java动态规划算法从入门的到熟练

文章目录一、动态规划1. 定义2. 基本思想和策略3. 解题思路4. 使用情况二、算法笔记509. 斐波那契数1137. 第 N 个泰波那契数70. 爬楼梯746. 使用最小花费爬楼梯198. 打家劫舍213. 打家劫舍 II740. 删除并获得点数55. 跳跃游戏45. 跳跃游戏 II53. 最大子序和918. 环形子数组的最…

sqlserver2008出现数据库主体在该数据库中拥有架构,无法删除的解决方案

当要删除数据库中的某个用户名的时候会报错 出现数据库主体在该数据库中拥有架构,无法删除的解决方案(MicrosoftSQLServer,错误:15138) 和sql server2000不同 第一:这就需要首先删除架构,之后再删除 当前数据库--》安全性--》…

sql server 2008 r2附加数据库时出现-无法显示请求的对话框的解决方案

出现这个错误一般都是权限不够 在打开Sql Server Management Studio时候选择系统登录就可以了 有限用户权限太低所以会出现此问题 一般选择安装数据库时创建的用户登录后附加数据库也可以。

堆栈溢出攻与防

溢出是网络安全中经常接触到的一个问题,一旦出现某种溢出漏洞,网络上成千上万的电脑都将成为Hacker兄弟姐妹们砧板上的肉了。那么溢出到底是什么?这种攻击方式需要怎么利用和防范?慢慢往下看就知道了。 溢出就是程序对用户提交的…

python绘制箱线图boxplot()

最近在处理数据时,需要使用python绘制箱线图。 1. 箱线图 箱线图(Box-plot)又称为盒式图或箱型图,是一种用来显示一组数据分散情况的统计图,它能显示一组数据的上界、下界、中位数、上下四分位数以及异常值等。 四分…

砍柴人和放羊人的故事集

近日,砍柴和故事在朋友圈疯传:一个要砍柴的人遇到一个放羊的人在那儿闲坐着玩儿,就将斧头放下,凑过去和放羊的人吹散牛,聊闲天。图片下有文字,“你是吹柴的,他是放羊的,你和他聊了一…

python处理问题汇总三(字体显示,显示上标,x轴重叠,添加标签,保存图片等)

文章目录1. python中文显示问题2. python设置Times New Roman字体3. 字符串显示上标4. subplot绘图主标题(plt.suptitle)被覆盖5. 保存图片设置分辨率,图片显示不全的问题6. subplot绘制多张图片时,出现压缩图片的情况7. x轴重叠的问题8. python画图时添…