自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 一招制敌的贪心算法
原力计划

文章目录摘要区间问题最大不相交区间数区间覆盖问题 摘要 本文主要介绍贪心算法。 贪心算法并不是一种特定的算法,而是一种策略,一种一招制敌的策略。每次都贪心选择最好的,就是贪心算法。 所以贪心算法往往效率高,代码短。常见的贪心问题:区间问题, Huffman编码,工作时间问题。 区间问题 最大不相交...

2020-04-02 20:54:57

阅读数 143

评论数 2

原创 任意进制之间的转换
原力计划

本文主要讲解整数的进制转换问题。方便的是,对于低精度整数,java中的整型基类Integer和Long中的parseXXX()方法和valueOf()方法可以将2 ~ 36进制的字符串转化为10进制整数,toString()方法可以将10进制数转化为2 ~ 36进制的字符串。对于高精度数,java...

2020-03-27 15:02:17

阅读数 162

评论数 0

原创 蓝桥杯知识点汇总:基础知识和常用算法

此系列包含蓝桥杯所考察的绝大部分知识点,一共有基础语法,常用API, 基础算法和数据结构,和往年真题四部分,内容丰富全面,十分适合初学java的同学。

2020-03-18 19:42:44

阅读数 21152

评论数 11

原创 矩阵乘法和矩阵快速幂

文章目录摘要矩阵矩阵乘法 摘要 本文主要讲解矩阵乘法和矩阵快速幂。 矩阵 数学上,一个m×n{\displaystyle m\times n}m×n的矩阵是一个由mmm行(row)n列(column)元素排列成的矩形阵列。矩阵里的元素可以是数字、符号或数学式。以下是一个由6个数字元素构成的2行3...

2020-03-10 23:02:38

阅读数 435

评论数 0

原创 CodeBlocks 解决配置好编译器路径后仍无法找到编译器问题(下载的是附带编译器的版本)

今天刚安装完CodeBlocks,却发现无法编译源代码,右下角提示: 我下载的是附带编译器的WIN10 64位的版本。安装位置是自定义的。 下载链接: 解决办法: 查看是否配置了正确的编译器路径 有些博主的解决办法是,Settings -> Compiler进入编译设置界面然后点击R...

2020-04-01 22:11:42

阅读数 205

评论数 1

原创 拓扑序列(拓扑排序)

文章目录摘要什么是拓扑序列拓扑序的求法 摘要 本文主要介绍拓扑排序,和求解拓扑排序的方法。 什么是拓扑序列 拓扑序列是对于有向图而言的,有向图的拓扑序是其顶点的线性排序,使得对于从顶点uuu 到顶点vvv的每个有向边uvuvuv, uuu 在排序中都在vvv之前。 例如对于下图: 对于上图, 存...

2020-03-31 21:07:31

阅读数 122

评论数 0

原创 高精度运算(大数运算)
原力计划

高精度运算是指参与运算的数远大于标准数据类型的数,动辄成百上千位的数。所以高精度数又被称为大数。 本文主要讲解:大数加法,大数减法,大数乘法,大数除法,大数阶乘。 java的大数类做这一类题很方便,效率高代码短,但是学会高精度算法还是很有必要的。

2020-03-24 03:36:31

阅读数 202

评论数 0

原创 计算组合数的三种方式
原力计划

本文将详细介绍计算组合数的三种方式,这三种方式分别适用于不同的场景。

2020-03-19 02:19:52

阅读数 352

评论数 0

原创 计算n阶行列式
原力计划

文章目录摘要行列式行列式的值拉普拉斯展开余子式代数余子式代码实现: 摘要 本文主要介绍如何用拉普拉斯展开计算计算n阶行列式的值。 行列式 行列式(Determinant)是数学中的一个函数,将一个n×n{n\times n}n×n的矩阵A{A}A映射到一个纯量,记作det⁡(A)或∣A∣{\de...

2020-03-16 13:45:38

阅读数 427

评论数 0

原创 欧几里得算法和扩展欧几里得算法

文章目录摘要欧几里得算法扩展欧几里得算法最小正整数解 摘要 本文主要讲解欧几里得算法和扩展欧几里得算法。 欧几里得算法 欧几里得算法就是辗转相除法,用于求两个数的最大公约数。 设gcd(a,b)gcd(a, b)gcd(a,b) 表示a和b的最大公约数。 辗转相除法的核心就是gcd(a,b)=gc...

2020-03-09 23:29:46

阅读数 418

评论数 0

原创 快速幂

文章目录摘要引言求nkn^knk快速幂 超级详细的基础算法和数据结构合集: https://blog.csdn.net/GD_ONE/article/details/104061907 摘要 本文主要介绍快速幂算法,快速幂虽然代码简单,但是往往会与其他算法相结合,很重要。 引言 当我们计算 nkn...

2020-03-06 19:42:48

阅读数 443

评论数 0

原创 素数筛法详解:埃氏筛和欧拉筛
原力计划

文章目录摘要欧拉筛 摘要 本文主要介绍欧拉筛和欧拉函数。 欧拉筛 上一篇博客讲过了如何判断一个数是否是质数,那么现在要在1s内求出区间[1,1e7][1,1e7][1,1e7]内的所有质数,你会怎么做,如果对每个数都判断其是不是质数,时间复杂度是O(n∗n)O(n*\sqrt{n})O(n∗n​)...

2020-03-05 15:47:41

阅读数 499

评论数 2

原创 判断质数和用算数基本定理分解质因数

文章目录摘要质数判断一个数是否是质数分解质因数 超级详细的基础算法和数据结构合集: https://blog.csdn.net/GD_ONE/article/details/104061907 摘要 本文主要讲解如何判断一个数是质数,和如何对一个数分解质因数。本文是很基础的也很重要的数学知识。 质...

2020-02-29 20:13:06

阅读数 539

评论数 0

原创 二分图
原力计划

二分图摘要什么是二分图染色法判断二分图匈牙利算法 超级详细的基础算法和数据结构合集: https://blog.csdn.net/GD_ONE/article/details/104061907 摘要 本文主要介绍二分图的基本概念以及如何用染色法判断二分图,如何用匈牙利算法求二分图的最大匹配。 什...

2020-02-24 21:14:48

阅读数 647

评论数 2

原创 并查集

并查集摘要什么是并查集并查集的实现 摘要 本文主要介绍并查集和其效率最高的实现方式。 什么是并查集 并查集顾名思义,是一种用于处理集合与集合之间查询和合并等操作的数据结构。比如询问两点是否在同一集合,将两个不同集合合并等 并查集的实现 给出n个点,将其划分为两个集合,查询其中某两个点是否在同一...

2020-02-20 01:46:31

阅读数 552

评论数 0

原创 最小生成树问题的两种算法

最小生成树摘要最小生成树的定义Prim算法Kruskal 基础算法和数据结构合集: https://blog.csdn.net/GD_ONE/article/details/104061907 摘要 本文主要介绍最小生成树以及求最小生成树常用的两种算法,Prim算法和Kruskal算法。 最小生成...

2020-02-20 01:04:06

阅读数 709

评论数 4

原创 图和树的存储方式:邻接矩阵和邻接表

邻接矩阵和邻接表摘要无向图和有向图的区别稀疏图和稠密图邻接矩阵邻接矩阵的初始化邻接矩阵的读入邻接表 基础算法和数据结构合集: https://blog.csdn.net/GD_ONE/article/details/104061907 摘要 本文主要介绍邻接矩阵和邻接表的实现方式,无向图和有向图的...

2020-02-17 02:28:17

阅读数 1554

评论数 0

原创 哈希表

本文主要介绍哈希表的定义,并用数组模拟哈希表。

2020-02-15 00:14:24

阅读数 603

评论数 0

原创 用数组模拟栈和队列

文章目录摘要栈队列 摘要 之前已经介绍过JAVA中已经实现好的栈和队列,本文主要介绍如何用数组模拟栈和队列。用数组模拟栈和队列的的优点就是快。 栈 栈的特点是“先进后出”,只能在栈顶进行插入和删除,所以用数组模拟的话,我们只能在数组的末尾进行插入和删除。 代码很简单,一看就能明白: public ...

2020-02-14 19:01:06

阅读数 1683

评论数 0

原创 用数组模拟单链表

文章目录摘要用数组模拟单链表插入遍历 摘要 本文主要介绍如何用数组模拟单链表。如果有同学没学过数据结构的话,请先了解顺序表和链表的定义。推荐视频:https://www.bilibili.com/video/av31802230 用数组模拟单链表 我们知道链表是通过指针将所有的结点链接实现的,在...

2020-02-13 20:54:32

阅读数 595

评论数 0

原创 二分法

二分法摘要整数二分 摘要 本文主要介绍二分法。二分法是一种精妙的算法,效率贼高,很多复杂的算法都采用了二分优化。 二分法用于在单调的序列内快速查找某个值,方法是序列分为两半,判断要查找的值在哪个区间,舍弃另一半,每次查询都会舍弃序列的一半,所以时间复杂度是log(n) 整数二分 整数二分就是在一些...

2020-02-11 21:02:35

阅读数 808

评论数 0

原创 最短路问题的五种算法

单元最短路和多源汇最短路的适用算法 单源最短路: 一个点到其他点的最短路。 无负边权时适用算法: 稠密图: 朴素Dijkstra 稀疏图: 堆优化Dijkstra 有负边权时适用算法: SPFA Bellman-Ford 多源汇最短路: 起点终点不确定。 Floyd 图的存...

2020-02-08 17:17:54

阅读数 1457

评论数 4

原创 深度优先搜索(DFS)和广度优先搜索(BFS)

DFS和BFS摘要状态DFSBFS 摘要 本文主要介绍 深度优先搜索和广度优先搜索,下文皆称为DFS和BFS。 DFS和BFS是两种搜索树和图的基本策略,见名知其义, 深搜和广搜,一种往深处搜,一种往边上搜。 DFS常用于暴力搜索所有状态,BFS常用于搜索到达某一状态的最短路径。 状态 我们将...

2020-02-06 02:18:53

阅读数 2397

评论数 2

原创 递归

文章目录摘要递归 摘要 本文将主要介绍递归。 递归 递归的含义很好理解,就是一个函数调用自身,难就难在如何确定一个题目的递归式,这就需要多刷题了。 一个完整的递归函数包含两个部分: 递归式 递归出口 以斐波那契数列为例: int f(int n){ if(n == 1 || n == 2...

2020-02-03 23:06:23

阅读数 2310

评论数 0

原创 java中sort方法的自定义比较器写法

文章目录摘要对数组排序对集合进行排序对自定义对象数组排序 摘要 在做一些算法题时常常会需要对数组、自定义对象、集合进行排序. 在java中对数组排序提供了Arrays.sort()方法,对集合排序提供Collections.sort()方法。对自定义对象排序时要自己重写比较器,对象数组则调用A...

2020-02-02 21:26:37

阅读数 1255

评论数 4

原创 算法竞赛中的常用JAVA API:PriorityQueue(优先队列)

文章目录PriorityQueue初始化常用函数实现大根堆的两种方式实例 PriorityQueue 翻译过来就是优先队列,本质是一个堆, 默认情况下堆顶每次都保留最小值,每插入一个元素,仍动态维护堆顶为最小值。 初始化 PriorityQueue()//使用默认的初始容量(11)创建一个 ...

2020-01-31 22:40:26

阅读数 1051

评论数 5

原创 算法竞赛中的常用JAVA API :HashSet 和 TreeSet

文章目录HashSetTreeSet set容器的特点是不包含重复元素,也就是说自动去重。 HashSet HashSet基于哈希表实现,无序。 add(E e)//如果容器中不包含此元素,则添加。 clear()//清空 contains(Object o)//查询指定元素是否存在,存在返...

2020-01-28 14:40:21

阅读数 734

评论数 0

原创 算法竞赛中的常用JAVA API :HashMap 和 TreeMap

文章目录HashMapTreeMap 摘要 本文主要介绍Map接口下的HashMap和TreeMap。 HashMap HashMap是基于哈希表的 Map 接口的实现,是无序的 clear()//清空。 containsKey(Object key)//如果包含指定键,返回true con...

2020-01-25 22:10:08

阅读数 848

评论数 1

原创 算法竞赛中的常用JAVA API :ArrayList(Vector) 和 LinkedList

文章目录Vector构造方法增加元素删除元素修改元素查找元素容器大小判空转化为数组转化为字符串Vector实例Stack构造方法增加元素删除元素查找元素容器大小判空转化为数组转化为字符串容器大小Stack实例 摘要: 本文主要介绍Vector和Stack的常用方法。 Vector Vector 类...

2020-01-22 11:13:24

阅读数 1286

评论数 0

原创 算法竞赛中的常用JAVA API :Calendar日期类

文章目录摘要Calendar类常用的日历字段Claendar类的实例化设置特定日期 摘要 在蓝桥杯中有关于日期计算的问题,正好java中的Date类和Calendar类提供了对日期处理的一些方法。Date类大部分方法已经废弃了,所以本文将详细介绍Calendar类。 Calendar类 Cale...

2020-01-21 23:36:50

阅读数 1227

评论数 3

原创 算法竞赛中的常用JAVA API :String 、StringBuilder、StringBuffer常用方法和区别

本文将介绍String、StringBuilder类的常用方法。 > 在java中**String**类不可变的,创建一个**String**对象后不能更改它的值。所以如果需要对原字符串进行一些改动操作,就需要用**StringBuilder**类或者**StringBuffer**类,**...

2020-01-21 02:34:05

阅读数 1211

评论数 8

原创 算法竞赛中的常用JAVA API :Math类

Math类包含了一些常用的数学方法,在java.lang.*包内。 (不能用于大数类,大数类请参见备战蓝桥杯java(五):算法竞赛中的常用API :大数类) 求最值 求平方根 求绝对值 求幂(a^b) 取整 得到一个随机数 三角函数 求最值 最小值

2020-01-18 21:45:53

阅读数 1200

评论数 1

原创 算法竞赛中的常用JAVA API :大数类

文章目录BigInteger java中的基础数据类型能存储的最大的二进制数是2^63-1,对应的十进制数是9223372036854775807,也就是说只要运算过程中会超过这个数,就会造成数据溢出, BigInteger BigInteger是java.math.* ...

2020-01-14 13:40:23

阅读数 1800

评论数 9

原创 JAVA基础语法:函数(方法)、类和对象

文章目录函数 函数 在java中函数也称为方法,是一段具备某种功能的可重用代码块。 一个函数包括这几部分: 1. 函数头 2. 代码块 3. 返回值 函数头包括函数访问修饰符,函数返回值类型, 函数名,参数 具体看个实例: public class Main{ public static vo...

2020-01-12 04:14:38

阅读数 1034

评论数 3

原创 JAVA基础语法:常用功能符以及循环结构和分支结构

文章目录1.循环结构 1.循环结构 while for do…while while: while(布尔表达式){ }

2020-01-10 22:20:31

阅读数 1115

评论数 1

原创 状态压缩DP_01 :最短Hamilton路径

哈密顿路径的定义是从起始点到结束点不重不漏地经过每个点恰好一次。 那么哈密顿路径的所有情况就是0123..n数列的全排列了。 如果要求出最短路径, 枚举全排列的话时间复杂度就达到了o(n*n!)级别 这道题的正解是状态压缩+DP 那么什么是状态压缩呢?为什么能用到求最短哈密顿路径呢? ...

2020-01-09 01:58:43

阅读数 1650

评论数 0

原创 位运算基础

文章目录1.什么是位运算2.位运算有哪些3.常用的位运算操作 1.什么是位运算 位运算又称为位操作,指的是直接对二进制位进行的一系列操作。 2.位运算有哪些 AND( & ) 按位与 1 & 1 = 0 1 & 0 = 0 0 & 0 = 1 1101 &a...

2020-01-09 00:40:15

阅读数 3032

评论数 1

原创 分治法

分治法不是一种特特定的算法,是一种算法思想。人们在遇到一些直接解决难以解决的大问题时,会将其分解为多个规模较小的子问题,各个解决,分而治之。 最常见的分治法算法就是快速排序和归并排序。 能用到分治法的题目需要符合两个特征: 1. 有重复子问题 即可将一个问题分为两个相同的子问题。 ...

2020-01-05 15:38:58

阅读数 817

评论数 0

原创 排序(二):归并排序

目录 1.什么是归并排序? 2. 和选择排序,冒泡排序等的暴力排序的区别在哪里,为什么快? 3. 代码实现归并排序 了解其他常用算法点这里 >>https://blog.csdn.net/GD_ONE/article/details/104061907 归并排序是分治法思想的...

2020-01-05 15:03:36

阅读数 899

评论数 0

原创 JAVA基础语法:java编程规范和常用数据类型

目录 摘要 面向java编程 常用数据类型 数组 定义 初始化 数组的拷贝 String String 的创建(注意是大写S!): String类型的比较: 1.==, != : 2. str1.equals(String str2); String对象的遍历: ...

2020-01-05 13:02:48

阅读数 1524

评论数 2

提示
确定要删除当前文章?
取消 删除