Scanner和BufferReader之区别
摘要:
在这几天刷算法题时,发现是ACM模式,每一道题都需要有输入,所以想要汇总一下晚上BufferedReader和Scanner的区别,以便更深的理解这两个类的区别。 一、Scanner 在Java中,我们都知道Java的标准输入串是System.in。但是我们却很少在Java中看到谁使用它,这是因为我
排序算法
摘要:
对排序算法做一个总结吧。先提交,回头再补吧 分类 比较类: 插入法: 插入排序 遍历未排序的列,将遍历到的每个元素插入到有序序列的适当位置。 希尔排序。 先将待排序的数组分成若干个子数组排序 选择法:包括选择排序和堆排序 选择排序 选择第 i 小的元素与第 i- 1 的位置交换 交换法:包括冒泡排序
递归算法
摘要:
什么是递归 递归是一个反复调用自身的过程,这就说明它每一级的功能都是一样的,因此我们只需要关注一级递归的解决过程即可。 如上图所示,我们需要关心的主要是以下三点 整个递归的终止条件。 一级递归需要做什么? 应该返回给上一级的返回值是什么? 因此,也就有了我们解递归题的三部曲: 1. 找整个递归的终止
二分查找
摘要:
对于有顺序的数组的查询操作,首先想到二分 二分查找分三种情况: 寻找一个数(基本的二分搜索) [1, 2, 2, 2, 3, 4, 5, 6, 7] 查找元素为3 返回 4 寻找左侧边界的二分搜索 [1, 2, 2, 2, 3, 4, 5, 6, 7] 查找元素为2 返回: 1(第一个2的索引) 寻
MySQL 总结
摘要:
文章参考JavaKeeper大佬: GitHub地址 JavaKeeper。 一、MySQL架构 和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以
MySQL 窗口函数
摘要:
原文引用 猴子 通俗易懂的学会:SQL窗口函数 一.窗口函数有什么用? 在日常工作中,经常会遇到需要在每组内排名,比如下面的业务需求: 排名问题:每个部门按业绩来排名 topN问题:找出每个部门排名前N的员工进行奖励 面对这类需求,就需要使用sql的高级功能窗口函数了。 二.什么是窗口函数? 窗口函
ArrayList 源码
摘要:
总体介绍 ArrayList实现了List接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入null元素,底层通过数组实现。除该类未实现同步外,其余跟Vector大致相同。每个ArrayList都有一个容量(capacity),表示底层数组的实际大小,容器内存储元素的个数不能多于当前容量
剑指offer刷题(算法类_2)
摘要:
排序 035-数组中的逆序对(归并排序) 题目描述 题解 代码 复杂度 050 数组中重复的数字 题目描述 在一个长度为 n 的数组nums里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1
剑指offer刷题(算法类_1)
摘要:
斐波那契数列 007-斐波拉契数列 题目描述 题解 代码 复杂度 008-跳台阶 题目描述 题解 代码 复杂度 009-变态跳台阶 题目描述 题解 代码 复杂度 010-矩形覆盖 题目描述 题解 代码 复杂度 搜索算法 001-二维数组查找 题目描述 题解 代码 复杂度 006-旋转数组的最小数字(
剑指offer刷题(栈、堆、 队列、 图)
摘要:
Stack & Queue 005-用两个栈实现队列 题目描述 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 push 和 pop ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 题解 用两个栈来实现队列(先进先出)的