自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 A*搜索C++实现

A*搜索A*算法原理代码实现A*算法原理你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。代码实现#include<iostream>#include<list>#include<queue>#include<vector>#include<cmath>#include<cstring>#inc

2021-02-17 23:19:21 543

原创 利用广度优先搜索求两点之间的无权最短路径长和无权最短路径

利用广度优先搜索求两点之间的无权最短路径长和无权最短路径这里的无权表示图中的所有边权值都相等0表示可以走的路,1表示障碍无法通过2 3 4 5 分别表示方向上右下左缺点:使用BFS搜索两点之间的最短路径效率太低,不过可以当作基础知识储备为后续学习做铺垫,有兴趣的可以了解Dijkstra算法和A*、B*算法#include<iostream>#include<queue>using namespace std;//代表节点的坐标和从起始点到当前位置的无权最小路径

2020-11-01 00:40:05 519

原创 堆排序

堆排序HeapSort(a, n)的作用是:对数组a进行升序排序;其中,a是数组,n是数组长度。HeapSort(a, n)的操作分为两部分:初始化堆 和 交换数据。MaxHeapDown(a, start, end)是最大堆的向下调整算法。#include<iostream>using namespace std;void MaxHeapDown(int arr[], int start, int end){ int parent = start; int child = pa

2020-10-26 11:58:02 149

原创 二叉树的遍历递归非递归

重点说一下二叉树遍历的非递归实现创建的二叉树如下:后序遍历为:5 3 2 4 1先序遍历为:1 2 5 3 4逆后序遍历为:1 4 2 3 5从逆后序遍历与先序遍历的关系中我们可以知道逆后序遍历序列为先序遍历交换左右子树的遍历顺序得到的,所以我们得到了逆后序序列之后然后逆序就可以得到后序遍历的序列了,所以需要两个栈,第一个栈用来存储先序遍历交换左右子树的遍历的中介结果,第二个是存储后序遍历的结果(逆序也就是可以理解为先进后出的意思)下面是模仿元素进栈与出栈的过程:① 1节点进栈,在循环中弹出

2020-08-25 11:51:48 184

原创 幂集问题

问题描述:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 示例: 输入: nums = [1,2,3] 输出: [[3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]说明:解集不能包含重复的子集。观察全排列/组合/子集问题,它们比较相似,且可以使用一些通用策略解决。首先,它们的解空间非常大:全排列:N!。组合:N!。子集:2N,每个元素都可能存在或不存在。在它们的

2020-08-23 19:25:55 574

原创 滚动hash实现字符串匹配

package 字符串匹配;public class 滚动hash { /** * 滚动哈希:常数时间生成哈希码 * 生成一个长度为 L 数组的哈希码,需要 O(L)O(L) 时间。 * 如何在常数时间生成滑动窗口数组的哈希码?利用滑动窗口的特性,每次滑动都有一个元素进,一个出。 * 由于只会出现小写的英文字母,因此可以将字符串转化成值为 0 到 25 的整数数组: arr[i] = (int)S.charAt(i) - (int)'a'。 * 按照这种规则,abcd 整数数组形

2020-08-23 11:11:01 520

转载 详解KMP算法

KMP算法应该是每一本《数据结构》书都会讲的,算是知名度最高的算法之一了,但很可惜,我大二那年压根就没看懂过~~~之后也在很多地方也都经常看到讲解KMP算法的文章,看久了好像也知道是怎么一回事,但总感觉有些地方自己还是没有完全懂明白。这两天花了点时间总结一下,有点小体会,我希望可以通过我自己的语言来把这个算法的一些细节梳理清楚,也算是考验一下自己有真正理解这个算法。 什么是KMP算法:KMP是三位大牛:D.E.Knuth、J.H.Morris和V.R.Pratt同时发现的。其中第...

2020-08-23 10:44:38 226

转载 访问一个URL经历了哪些过程

从大致上来讲经历了客户端获取URL - > DNS解析 - > TCP连接 - >发送HTTP请求 - >服务器处理请求 - >返回报文 - >浏览器解析渲染页面 - > TCP断开连接1、概要从用...

2020-08-17 19:23:14 1321

原创 最长公共子序列C++

最长公共子序列问题描述最长公共子序列问题分析代码问题描述先来了解一下字串和子序列,一个串的子串是指该串的一个连续的局部。如果不要求连续,则可称为它的子序列。比如对串: “abcdefg” 而言,“ab”,“abd”,“bdef” 等都是它的子序列。特别地,一个串本身,以及空串也是它的子序列。最长公共子序列给出两个字符串,求出这样的一个最长的公共子序列的长度:子序列中的每个字符都能在两个原串中找到,而且每个字符的先后顺序和原串中的先后顺序一致。例如:abcfbc与abfcab的最长公共子序列是a

2020-06-10 19:37:42 3221

原创 快速选择算法c++

快速选择算法c++Quick Selection原理Quick Selection复杂度分析前后指针法Quick Selection原理Quick Selection算法和Quick Sort算法是由同一个作者提出,这两者之间有很大的相似之处——分治,即将问题的规模一次次的减小,直到求出最终解,时间复杂度O(n),且数据无需有序。目标:找到第n大的数随机产生一个pivot根据这个piv...

2020-03-31 18:26:50 1825

原创 P1424 小鱼的航程(改进版)详解

题目背景原来的题目太简单,现改进让小鱼周末也休息,请已经做过重做该题。题目描述有一只小鱼,它平日每天游泳 250 公里,周末休息(实行双休日),假设x(1≤x≤7) 开始算起,过了n(n≤106) 天以后,小鱼一共累计游泳了多少公里呢?输入格式输入两个整数x,n(表示从周x算起,经过n天)。输出格式输出一个整数,表示小鱼累计游泳了多少公里。输入输出样例输入3 10输出200...

2019-11-04 21:10:45 1488 2

原创 实现TreeSet类,其中迭代器使用二叉查找树

TreeSet的实现类这里主要是实现TreeSet的迭代器的hasNext()、next()、remove()这三个方法。本例中所用到的节点都为其添加了一条指向其父节点的parent引用import java.util.ConcurrentModificationException;import java.util.Iterator;import java.util.NoSuchEle...

2019-09-21 15:01:45 233

原创 利用Java大整数类实现高次幂运算

利用Java大整数类解决高次幂运算思路:若N是偶数,则 XN = XN/2 * XN/2;若N是奇数,则 XN = X(N-1)/2 * X(N-1)/2 * X => (X2)(N-1)/2 * X。import java.math.BigInteger;/** * 利用Java大整数类解决高次幂运算 * 思路: *若N是偶数,则X^N = X^N/2 * X^N/2...

2019-08-05 22:48:44 1387

原创 后缀表达式实现简单的加减乘除运算

如何计算后缀表达式当遇到一个数是就把它推入栈中;在遇到一个运算符时该运算符就作用于从该栈弹出的两个操作数上,再将所得的结果推入栈中。最终,栈中只有一个元素,即为答案。注:本文是利用后缀表达式实现简单的加减乘除运算,所以在本文开始前还需要了解后缀表达式如何将标准表达式(中缀表达式)转换成后缀表达式。import java.util.List;import java.util.Stack;...

2019-07-31 19:21:40 1063

原创 将标准表达式(中缀表达式)转换成后缀表达式

什么是后缀表达式后缀表达式,又称逆波兰式,指的是不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则)。例如:这里我给出一个中缀表达式:a+bc-(d+e)第一步:按照运算符的优先级对所有的运算单位加括号:式子变成了:((a+(bc))-(d+e))第二步:转换前缀与后缀表达式前缀:把运算符号移动到对应的括号前面则变成了:...

2019-07-31 18:42:57 996

原创 括号配对

import java.util.HashMap;import java.util.Map;import java.util.Stack;public class 平衡符号 { /** * 思路: * 做一个空栈。读入字符直到文件结尾。 * 如果字符是一个左括号,则将其推入栈中。 * 如果是右括号,则当栈空时报错。否则,将栈顶元素弹出。如果弹出的符号不是对应的左括号,...

2019-07-31 16:43:22 156

原创 Java string和各种格式互转

Java string和各种格式互转其他类型转StringString s = String.valueOf( value); // 其中 value 为任意一种数字类型。 字符串型转换成各种数字类型:String s = "169"; byte b = Byte.parseByte( s ); short t = Short.parseShort( s ); int ...

2019-07-31 09:59:34 135

原创 在CMD命令行中使用java 运行java程序,出现“找不到或无法加载主类 ”的注意事项

要在CMD命令行中使用java 运行java程序,关于出现 “找不到或无法加载主类 ”错误的解决办法转载于:http://blog.chinaunix.net/uid-27106528-id-5209914.html网络上基本都是在说关于"classpath"路径的配置问题,要加入 ” .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;“前...

2019-07-26 21:01:16 2278

转载 系统变量path和java中的三个环境变量的作用及其配置

先理解一下系统变量path和classpath的作用出处:记一次解决cmd中执行java提示"找不到或无法加载主类"的问题path:可执行命令的搜索路径,在该路径下搜索可以运行的程序或批处理文件。  命令行中输入一个命令,则会在path配置的目录中查找该命令,如果存在则调用该程序运行,如果不存在则 提示“ ‘XXX’ 不是内部或外部命令,也不是可运行的程序或批处理文件。”  如果要想在cm...

2019-07-26 20:59:14 1079

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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