![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
tree_ifconfig
目前还是一位大四学生,现在主攻javaweb方面,现在把以前学习的东西总结一下,发布上来,方便以后自己的复习,和帮助他人学习,The future,come on!
展开
-
二分查找算法(Java实现)
①适用于经常查找的、但是不变的(增删)的有序列表。 ②原理图③测试代码://二分查找测试类//注意:二分查找必须用在有序列表中进行二分查找public class BinaryChopTest { public static void main(String[] args) { int[] arrays = {1, 6, 10, 11, 12...原创 2018-07-17 10:31:12 · 12137 阅读 · 6 评论 -
LeetCode2之两数相加(Add Two Numbers)
一、题目二、一种解题思路1)介绍:暴力解法(感觉没别的了吧,可能是我笨吧,原地爆炸下) 方法思路:一路遍历,一路加,遇到一个链表的next为null时,则停止遍历该链表,并且让另一个链表的剩余节点和0相加。若链表已经遍历完了,还存在进位数,则在创建一个next节点。 时间复杂度:O(Max(m,n)) 空间复杂度:O(Max(m,n))或O(Max(m,n)...原创 2018-11-01 08:59:54 · 225 阅读 · 0 评论 -
LeetCode232之用栈实现队列(Implement Queue using Stacks)
一、题目二、一种解题思路1)介绍:双栈实现队列法 方法解析:使用两个栈做为基础,一个栈保存输入的元素,另外一个栈将前面栈中的元素保存到自己中,这样就实现了队列的效果,最先进的元素在in栈的栈底,out栈的栈顶。 ()从一个栈到另外一个栈的操作,仅在out栈为empty时进行,也就是实现了队列的先进先出)。 时间复杂度:O(n) 空间复杂度:O(n)2)核心代码...原创 2018-10-31 22:19:53 · 565 阅读 · 0 评论 -
LeetCode141之环形链表(Java实现)
一、题目 二、两种解题思路及代码实现 ①龟兔赛跑解法,快指针跳两个,慢指针跳一个,若两指针遇到一样,则有环 时间复杂度:O(n) 空间复杂度:O(1) /** * 龟兔赛跑解法 ---- 李小豪 * @param head * @return */ public boolean hasCyc...原创 2018-10-23 23:25:18 · 207 阅读 · 0 评论 -
LeetCode1之两数之和(Two Sum)
一、题目二、两种解题思路①方法一:1)介绍:Map辅助法 方法解析:Map辅助法,从x=数组的第一个数开始,进行y=target-x的计算,并且查看y是否在Map中存在,若存在,则返回x的下标和y的下标,若不存在,则将数保存到Map中,继续循环以上操作,若到最后还没有符合条件的,则抛出异常。 时间复杂度:O(n) 空间复杂度:O(n)2)核心代码: ...原创 2018-10-28 18:28:40 · 161 阅读 · 0 评论 -
LeetCode242之有效的字母异位词
一、题目二、两种解题思路①方法一:1)介绍:Map辅助法 方法解析:通过Map分别保存两个字符串中每个字母的数量,最后比较两个Map是否相等,相等则两字符串是异位词,否则不是。 时间复杂度:O(n) 空间复杂度:O(n)2)核心代码: public static boolean isAnagram(String s, String t) { ...原创 2018-10-28 16:15:53 · 147 阅读 · 0 评论 -
LeetCode142之环形链表II
一、题目二、一种解题思路①方法介绍一:龟兔赛跑法升级版 方法解析:①使用龟兔赛跑法先判断当前链表是否存在环(快慢指针能够相遇,则存在环) ②假设链表头部到环起点的距离为x,环的长度为y,快指针每次走两步,慢指针每次走一步, 慢指针走t步后与快指针相遇,相遇的位置是(t - x)%y ...原创 2018-10-25 09:09:33 · 281 阅读 · 0 评论 -
BFS(广度优先搜索算法)和DFS(深度优先搜索算法)
注意:①BFS和DFS都是对图的遍历(按照某种次序访问图的每一顶点一次仅且一次) ②存储图的两种方式:邻接表和邻接矩阵(本质就是二维数组)一、BFS ①也就是我们说的广度搜索算法 ②实现方式:利用队列和递归来实现 ③思路:通过队列来实现的,找到一个起点A,并将A相邻的点放入队列中,这时将队首元素B取出,并将B相邻且没有访问过的点放入队列中,不断重复...原创 2018-08-01 10:50:09 · 4485 阅读 · 0 评论 -
八大排序算法之基数排序
一、简单介绍1、基数排序也就是桶排序,属于分配式排序。2、特点:按照分配、按序回收(分配到不同的位置上,然后回收...),不断分配....不断按序回收,直到有序为止。3、时间复杂度:O(nlog(r)m) (1)r表示所采用的基数 (2)m表示堆数4、算法思路: (1) 将所有的数依次按照个位、十位、百位、千位、.......原创 2018-07-15 17:55:52 · 295 阅读 · 0 评论 -
LeetCode19之删除链表的倒数第N个节点
一、题目二、两种解题思路①方法一:二次遍历法1)方法介绍: 时间复杂度:O(2n) 空间复杂度:O(n)2)核心代码:public static ListNode removeNthFromEnd(ListNode head, int n) { int count = 0; ListNode cur = new ListNo...原创 2018-11-01 22:50:52 · 157 阅读 · 0 评论