摘要: 动态规划是一个很好用的算法,同时也是令很多人头疼的算法,下面就介绍一下对动态规划的看法。 通过学习和刷题我们可以发现动态规划一般是用于求一些最值问题,比如说最长递增子序列等等,我们要想知道一个问题的最值,就要知道问题的所有答案然后通过比较得出答案,也就说我们平常所说的穷举;当然肯定不是暴力的穷举,对 阅读全文
posted @ 2020-09-05 22:05 万物小白 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 基本内容 并查集算法主要是解决图论中的动态连通性问题,下面首先介绍一下什么叫做动态连通性。 这里的连通是等价的,主要有下面几个性质: 自反性,结点和自身相连通; 对称性,结点p结点q连通,那么结点q和结点p连通; 传递性,结点p和结点q连通,结点q和结点r连通,那么结点p和结点r连通; 各个连通我们 阅读全文
posted @ 2020-09-05 16:08 万物小白 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 给定一个包含 n 个节点的有向图 G,我们给出它的节点编号的一种排列,如果满足:对于图 G 中的任意一条有向边 (u, v)(u,v),u 在排列中都出现在 v 的前面。那么称该排列是图G的拓扑排序。 因此求拓扑排序就涉及到图的遍历问题,我们一般采用深度优先搜索的策略,具体的思路如下: 对于图中的每 阅读全文
posted @ 2020-09-03 22:09 万物小白 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 滑动窗口是双指针的一种应用,形象点说就是维护一个窗口,在窗口滑动的过程中进行窗口内数据的更新,并判断是否符合答案。、 初始时两个指针均指向开头,然后右指针依次向右滑动,在滑动的过程中需要收缩的时候进行左指针的移动,当右指针移出的时候结束循环即可。 之前在学习的时候看到别人总结了一个滑动窗口算法的框架 阅读全文
posted @ 2020-09-03 10:37 万物小白 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 大家都喜欢将双指针分为两类,一类是快慢指针,另一类是左右指针; 其中,快慢指针主要解决一些和链表相关的问题,左右指针主要解决一些数组和字符串的问题,比如二分查找这样的。 快慢指针 快慢指针在使用的时候一般都是初始化指向链表的头部,之所以有快有慢是因为后面在更新的时候跨度不一样; 快慢指针可以用来判断 阅读全文
posted @ 2020-09-02 22:20 万物小白 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 二分查找也是属于双指针应用的一种体现; 二分查找在使用的时候,数据往往是有序的,并且一般是数组;因此一般两个指针一个是从左边开始,另一个是从右边开始; 二分查找在使用的时候一般是有大体的框架的,比如在一个数组中查找一个数的写法如下: public int fun(int []num, int tar 阅读全文
posted @ 2020-09-02 21:51 万物小白 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 二叉树的定义是每个结点最多只能有两个子节点; 对于一些二叉树的问题常常用到的编程思想就是递归; 二叉树重要的就是遍历问题,主要有前序遍历,中序遍历,后序遍历和层序遍历,各种遍历方法的命名是看当前结点的访问顺序; 在遍历的过程中,可能遇到合适的答案就要返回,合理的利用return语句可以达到剪枝的效果 阅读全文
posted @ 2020-09-02 16:06 万物小白 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 首先说明的一点是递归是一种编程技巧,一种解决问题的思维方式,一些具体的算法都是在这种思维方式上产生的,比如分治算法;递归的基本思想,是把规模较大的一个问题,分解成规模较小的多个子问题去解决,而每一个子问题又可以继续拆分成多个更小的子问题,最重要的一点就是假设子问题已经解决了,现在要基于已经解决的子问 阅读全文
posted @ 2020-08-31 21:27 万物小白 阅读(835) 评论(0) 推荐(0) 编辑
摘要: # 选择排序 选择排序是一种简单直观的排序算法,基本的思想如下: 首先在未排序的序列中找到最小的元素,存放在排序序列的起始位置; 然后在从剩下的未排序的元素中继续寻找最小的元素,放在已排序序列的末尾; 重复执行第二步,知道所有的元素均有序; 具体的实现代码如下所示: ```java public v 阅读全文
posted @ 2020-08-30 18:56 万物小白 阅读(93) 评论(0) 推荐(0) 编辑
摘要: List集合 一般情况下,我们使用ArrayList类型的即可,定义方式为 List<类型> val=new ArrayList<>(); 常用方法如下: 添加元素 add(元素); 获取元素 get(index); 删除元素 remove(index) 或 remove(元素) 获取元素个数 si 阅读全文
posted @ 2020-08-13 22:10 万物小白 阅读(671) 评论(0) 推荐(0) 编辑