自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 资源 (3)
  • 收藏
  • 关注

原创 Dijkstra与Floyd求取最短路径

最短路径算法:用于计算一个节点到其他所有节点的最短路径。是图论研究中的一个经典算法问题。一、Dijkstra算法:典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但由于遍历计算的节点很多,所以效率低。可以用堆优化。按照路径长度递增的次序一步步并入来求取,是贪心算法的一...

2020-03-13 22:02:10 262

原创 面试常考算法题

一、[编程题]折纸问题时间限制:C/C++ 3秒,其他语言6秒空间限制:C/C++ 32M,其他语言64M请把纸条竖着放在桌⼦上,然后从纸条的下边向上⽅对折,压出折痕后再展 开。此时有1条折痕,突起的⽅向指向纸条的背⾯,这条折痕叫做“下”折痕 ;突起的⽅向指向纸条正⾯的折痕叫做“上”折痕。如果每次都从下边向上⽅ 对折,对折N次。请从上到下计算出所有折痕的⽅向。给定折的次数n,请返回...

2020-03-13 12:10:58 269

原创 剑指Offer48:最长不含重复字符的子字符串

题目:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度假设字符串中只包含'a'~'z'的字符例如,在字符串“arabcacfr”中,最长的不含重复字符的子字符串是“acfr”,长度为4思路:我们从头遍历,考虑每次所读的当前字符为结尾的字符串的不含重复字符的最长子字符串问题。如我们读到了第i个字符,假设当前以i为结尾的字符串的最长不含重复字符的字符...

2020-03-12 17:39:15 271

原创 分糖

N个孩子站成一排,给每个人设定一个权重。按照如下规则分配糖果:1)每个孩子至少分的一个糖果2)权重高的孩子,会比他的邻居获得更多的糖果问:总共最少需要多少颗糖果?分析算法思路,算法时间、空间复杂度?思路:假设每个孩子分到的糖果数组为A[N],初始化为{1},因为每个人至少分到一颗糖。1、与前面的邻居比较,前向遍历权重数组ratings,如果ratings[i] > r...

2020-03-12 17:22:36 279

原创 LRU缓存

设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作:获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回-1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最近最少使用的数据值,从而为新的数据值...

2020-03-12 17:19:40 128

原创 关于FastDFS图片服务器的相关工具的下载与搭建

1、使用资源版本系统:Centos6.x软件:libfastcommon libfastcommon-1.0.35.tar.gz FastDFS fastdfs-5.10.tar.gz nginx nginx-1.9.9.tar.gz fastdfs-nginx-module fastdfs-nginx-module_v1.16.tar.gz ...

2019-12-05 09:36:08 207

原创 常见的八种排序算法

排序按类别分为:插入排序(插入排序、希尔排序)、选择排序(选择排序、堆排序)、交换排序(冒泡排序、快速排序)、归并排序、基数排序。1. 冒泡排序/** * 从第一个数据开始,将顺序表中的每一个数据与其后一个数据比较大小 如果比后边大,就交换位置, 直到倒数第二个与倒数第一个比较完毕 * 我们可以得到最大的数,放在队尾, 不断循环执行,直到数组有序 */ public sta...

2019-11-26 11:09:17 508

原创 JVM_05虚拟机加载机制

虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。一、类加载的时机类从加载到虚拟机内存开始,到卸载出内存结束,生命周期:加载、连接(验证、准备、解析)、初始化、使用、卸载。注意:加载、验证、准备、初始化、卸载这五个时严格按顺序开始的,但解析的过程有时会在初始化之后,这是为了支持Jav...

2019-11-20 17:10:40 135

原创 关于Git的使用

如果我们想要将项目同步到GitHub上的话,首先我们要下载一个Git本地客户端,我用的是Gitbash。下载安装完成后,就可以上传下载GitHub上的项目了:首先,切换页面到你想要放置项目的文件路径下:一、目录的创建在本地创建一个目录作为项目目录,然后进行初始化:二、项目的上传首先,将上传的项目拷贝到该Git项目目录(此处用1.txt演示)...

2019-11-20 16:11:04 172

原创 JVM_04类文件结构

之前已经学习了有关JVM的组成、内存泄漏原因、垃圾回收机制和内存的动态分配、以及常用的Java工具和JVM实战案例;现在开始学习Java类文件结构一、Class类文件结构1. 无关平台Java语言的一大特性就是无关平台,其实现根本是在Java进行编译时,并非直接编译成能够被计算机读懂的本地二进制机器码,而是先转换成与操作系统、机器指令集无关的、平台中立的字节码文件进行存储;然后通过对字...

2019-11-18 13:41:17 154

原创 JVM_03调优案例分析

一、高性能硬件上的程序部署策略1. 案例一个网站服务器,原先配置为32位,给JVM堆内存大小为1.5GB,使用网站是比较缓慢但无明显卡顿。为了更好的用户体验,升级服务器为64位,16G内存;管理员选用64位jdk,设置JVM堆内存为12GB。但升级后的网站却不定期出现长时间无响应现象。2. 原因网站的无响应是由于GC停顿导致的,JVM在server模式,默认使用吞吐量优先的GC收集...

2019-11-15 11:01:24 181

原创 JVM_02垃圾回收GC&内存分配策略

一、 如何确定堆中对象是否“存活”?1. 引用计数算法给对象添加一个引用计数器,当有一个地方引用它,计数器加一;引用失效计数器减一,当计数器为0则对象不可能再被使用。但是,Java语言并没有选用引用计数法来管理内存,主要原因时它很难解决对象之间相互循环引用的问题2. 根搜索算法(GC Roots Tracing)通过一系列名为“GC Roots”的对象作为起始点,从这个节点开始...

2019-11-13 17:06:14 109

原创 JVM_01虚拟机内存划分

JAVA技术:在虚拟机层面隐藏了底层技术的复杂性以及机器与操作系统的差异性。从而导致一旦出现Java内存区域和内存溢出异常时,如果不了解JVM的工作机制,排查错误将十分艰难。1. JVM对其管理的内存区域划分所划分的这些数据区域是线程隔离的。1)程序计数器时一块较小的内存空间,可作为线程所执行字节码的行号指示器。JVM的多线程通过其保证线程切换时能够恢复到正确位置,每条线程都需要一...

2019-11-13 10:51:58 297

原创 Elasticsearch学习之四:使用ESRally对搭建的ES集群进行压测

一. 机器配置系统:Windows7 8G i57200U虚拟机:CentOS6我们采用官方压测工具ESRally来进行压测二.测试我们安装好esrally后,先启动它的测试用例esrally --distribution-version=6.4.1 --test-mode结果:三.步骤1. 定义压测目标1) 本次压测在于考察ES三节点所构建的集群...

2019-11-12 17:10:37 1165

原创 Elasticsearch学习之三:ES的核心概念+ES JAVA应用

1. cluster1)代表一个集群,集群中有多个节点,主节点通过选举产生,这是对于集群内部来讲。而ES是去中心化的,从集群外部来看整个ES集群逻辑上是一个整体,与任何一个节点通信和与整个ES集群通信是等价的2)主节点:负责管理集群状态,包括管理分片的状态和副本的状态,以及节点的发现和删除。curl http://192.168.10.129:9200/_cluster/health?...

2019-11-07 15:00:15 729

原创 ElasticSearch学习之二:Head插件的安装以及ES的RESTful API使用

1. ES与Solr对比Solr在海量历史数据的检索上比较有优势,而ES在实时检索上更加强大。(1)Solr支持更多的数据格式:JSON、XML、CSVES仅支持JSON(2)Solr需要Zookeeper来进行分布式管理,而ES自身带有分布式协调管理功能(3)Solr官方提供的功能更多,而ES更注重核心功能,高级功能多交给第三方插件2. ES与关系型数据库对比关系型数...

2019-11-06 15:39:04 307

原创 ElasticSearch学习之一:基础知识+单节点/集群搭建

一、ES相关知识ES基于RESTful web接口并且构建在Apache lucene之上的开源分布式搜索引擎。同时ES是一个分布式文档数据库,每个字段均可被索引、每个字段数据均可被搜索,能够横向扩展数以百计的服务器存储以及处理PB级的数据。1. 可以在极短时间内存储、搜索和分析大量的数据2. 通常作为具有复杂搜索场景下的核心发动机ES高可用且高扩展。一方面同升级硬件完成系统扩展,...

2019-11-06 15:33:27 514

原创 剑指Offer学习 【面试题23:从上往下打印二叉树】【面试题24:二叉搜索树的后序遍历序列】【面试题25:二叉树中和为某一值的路径】【面试题26:复杂链表的复制】

23题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左向右的顺序打印。public class Offer23 { public static class BinaryTreeNode{ int value; BinaryTreeNode left; BinaryTreeNode right; } public static void printFromToB...

2019-10-31 17:15:02 112

原创 剑指Offer学习【面试题21:包含min 函数的栈】【面试题22:栈的压入、弹出序列】

21题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小素的min 函数。在该栈中,调用min、push 及pop的时间复杂度都是0(1)/** * 定义栈的数据结构 * 使得返回最小元素min() pop() push()的时间复杂度都为O(1) * @author aa * @param <T> * */public class StackWithMi...

2019-10-30 11:10:56 127

原创 关于爬虫的JAVA实现

最近学习了一下爬虫,发现Java真的是一门强大的语言,方方面面。1. 爬虫一指定一个网站,通过正则表达式对服务器返回的数据进行匹配,将符合的信息保存在本地。/** * 用Java实现爬虫 * @author aa * */public class Robot { public static void main(String[] args){ URL url = nu...

2019-10-18 14:28:08 184

原创 BootStrap总结

1、trigger与triggerHandler的区别 trigger 触发事件,但是会执行类似浏览将光标移到输入框内的这种浏览器默认行为 triggerHandler 仅仅只会触发事件所对应的函数2、JSON(JavaScript Object Notation) 概述 一种轻量级的交换格式,是ECMAScript的一个子集 格式 ...

2019-05-22 21:04:50 180

原创 JQuery总结

1、JQuery 一个快速、简洁的JavaScript框架2、作用 write less,do more 将JS代码与HTML代码分离 提高工作效率3、JQ入门 JQ的三种文档加载完成事件 jQuery(document).ready(function(){ }); $(document).ready(funct...

2019-05-22 21:04:11 92

原创 JavaScript总结

1、JavaScript 是一种直译式的脚本语言2、脚本语言 java源代码 ->编译为字节码文件.class ->在java虚拟机中运行 脚本语言: 源码 -> 解释执行 (js由我们的浏览器来解释执行) HTML:决定页面的框架,数据的初始化和显示 CSS:美化我们的页面 JS:提供用户交互和数据传输功能3、JS的组成...

2019-05-22 21:03:24 92

原创 CSS总结

1、HTML块标签 div 默认占一行,自动换行 span 内容显示在同一行 中间加空格2、CSS 层叠样式表 主要用于 1、美化HTML页面 2、CSS用于美化与HTML页面分离 1、CSS简单语法 <style> 选择器{ ...

2019-05-15 14:59:33 150

原创 HTML总结

1、文档声明 2、html根标签 3、html文件主要包含两部分,头部分和体部分 头部分:用来放置一些页面信息 体部分:用来放置html页面内容 4、标签主要对内容进行描述,由开始标签和结束标签组成 注意:标签不区分大小写,但官方建议使用小写 5、meta指定网站的配置信息 1、 font 字...

2019-05-15 14:57:19 147

原创 Java实现二分查找

要求:查找数组应为有序数组,结果返回查找值得数组索引下标,若不存在返回-1。public class Demo_Find { public static void main(String[] args){ int[] a = {11, 22, 33, 44, 55, 66}; System.out.println(getIndex(a, 11)); System.out.pri...

2019-04-11 22:43:00 319

原创 Java学习——String常用方法及冒泡、选择排序

1、String类的判断功能*boolean equals(String str):比较字符串的内容是否相同,区分大小写*boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写*boolean contains(String str):判断大字符串中是否包含小字符串*boolean startsWith(String str)...

2019-04-10 21:20:44 295

原创 C++知识点第五篇

一、运算符重载 通过重载扩展C++运算符的功能,使其能够操作用户自定义的数据类型,增加程序代码的直观性和可读性。但运算符重载过程中具有以下限定条件:(1)不能改变运算符的优先级(2)不能改变运算符的结合顺序(3)重载运算符不能使用默认参数(4)不能改变运算符所需要的参数个数(5)不能创造新的运算符(6)不能改变运算符原有含义(7)若运算符被重载为类的成员函数,则只能是非静态的成员函数...

2019-03-28 22:20:01 152

原创 C++知识点第四篇

一、静态绑定和动态绑定 面向对象程序设计语言的另一特征,指不同对象接收到同一消息时会产生不同的行为。 继承处理的是类与类之间的层次关系问题,而多态则是处理类的层次结构之间以及同一个类内部同名函数的关系问题。1、静态绑定:在编译程序时根据调用函数提供的信息,把对应的具体函数确定下来,通过函数重载和运算符重载来实现静态多态性。2、动态绑定:在编译程序时还不能确定函数调用所对应的具体...

2019-03-27 22:30:36 140

原创 C++知识点第三篇

一、类1、this指针 类的多个成员共用一份成员函数,通过this指针区别不同对象,this是用于标识一个对象自引用的隐式指针。注意:静态成员函数中没有this指针所以静态成员不能访问对象的非静态数据成员。2、类对象成员 类中也可以用其它类的对象作为成员,对象成员必须采用初始化列表方式进行初始化。3、向函数传递对象 可分为:值传递,传引用,传指针 值传递以按域复...

2019-03-26 22:16:35 150

原创 C++知识点第二篇

一、类 class是面向对象程序设计的核心,是实现数据封装和信息隐藏的工具,是继承和多态的基础。1、类声明中的访问限定符没有先后次序之分2、同一个类中,访问限定符的出现次数没有限制3、处于信息隐藏目的,多将数据成员和只能让内部访问的成员函数设置为private4、数据成员可以是任何数据类型,但不能是自身类的对象!5、在声明类时,不能为数据成员赋初值(因为类相当于一个自定义...

2019-03-25 17:33:18 209

原创 C++知识点第一篇

C++最大的改变就是在C中引入了面向对象程序设计的语言机制。1、在C语言中,结构和联合中的函数是不允许的,且必须在相关变量的定义前面加上对应的关键字(struct student s1;)。2、C中局部变量应该在函数的可执行语句之前定义,另外C++允许在for循环中定义变量。一、指针 用于存放一个对象在内存中的地址,通过指针能够间接的操作这个对象。典型用法建立链接的数据结构(...

2019-03-24 16:09:33 298

原创 814 - The Letter Carrier's Rounds

#include <iostream>#include <string>#include <vector>#include <set>#include <map>using namespace std;void parse_address(const string& s, string& user, str...

2019-03-23 09:57:33 458

原创 221 - Urban Elevations

#include <cstdio>#include <algorithm>using namespace std;const int maxn = 100+5;struct Building{ int id; double x, y, w, d, h; bool operator < (const Building& r...

2019-03-22 21:45:22 176

转载 400 - Unix ls

法一:#include <iostream>#include <vector>#include <string>#include <algorithm>#include <cmath>using namespace std;int main(){ int N; while(cin >> N...

2019-03-22 21:04:47 172

原创 随机数生成并排序

#include <cstdlib>#include <vector>#include <iostream>#include <algorithm>#include <cassert>using namespace std;void fill_random_int(vector<int>& v, int...

2019-03-21 20:37:20 2625

转载 136 - Ugly Numbers

#include <iostream>#include <vector>#include <queue>#include <set>using namespace std;typedef long long LL;const int coeff[3] = {2, 3, 5};int main(){ priority_qu...

2019-03-21 19:26:37 166

转载 540 - Team Queue

#include <cstdio>#include <queue>#include <map>using namespace std;const int maxn = 1000+10;int main(){ int t, kase = 0; while(scanf("%d", &t) == 1&&t) ...

2019-03-21 18:42:00 180

原创 12096 - The SetStack Computer

#include <iostream>#include <set>#include <stack>#include <map>#include <vector>#include <algorithm>using namespace std;#define ALL(x) x.begin(), x.end()#...

2019-03-21 18:41:22 226

原创 UVA156 - Ananagrams

思路: 因为要求输出时应保留输入中的大小写,所以我们将读入的字符串s先进行一个副本保存,存入不定长数组vector中。然后开始检测单词是否满足情况:首先对读入字符串s转化为小写,并根据字母序排序。然后检测若该字符串只出现过一次(即单词不能通过字母重排得到输入文本中的另外一个单词)则cnt[r]为1、否则为0。 然后统计words中的单词在映射map中的值是否为1,为1证明该单词不能重排...

2019-03-20 20:14:42 294

聊天软件需求文档

开发一个即时通讯软件,包含单聊和群聊,能及时的发送接收信息,能良好的运行。主要采用Java编程技术以及数据库的应用,使用户可以使用具备登录功能、聊天功能、查询好友功能、文件传输功能的聊天软件,主要用于聊天的交流与娱乐。

2018-07-10

飞机大战开发报告

本次实训项目是做一个飞机大战的游戏。通过应用MFC编程,来构建一个界面简洁流畅、游戏方式简单、玩起来易于上手的应用游戏。该飞机大战项目运用的主要技术即是MFC编程中的一些函数、链表的思想以及贴图技术。

2018-07-09

飞机大战源码(技能 护盾 血包)

小学期课程设计,飞机大战。本次实训项目是做一个飞机大战的游戏。通过应用MFC编程,来构建一个界面简洁流畅、游戏方式简单、玩起来易于上手的应用游戏。该飞机大战项目运用的主要技术即是MFC编程中的一些函数、链表的思想以及贴图技术。

2018-07-09

空空如也

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

TA关注的人

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