- 博客(26)
- 收藏
- 关注
原创 图系列(四)欧拉通路与欧拉回路
欧拉通路与欧拉回路之前,写了图系列一二三,现在出四啦!这也意味着,对于图的部分,可以说50%以上常用的内容就已经过了一遍了。欧拉路的部分会稍微难一点,主要是我们要和定义打交道了。至于其他图的理论,我感觉比较有用的就不剩下多少了。可能就还有同构什么的,还会有一些探讨的空间。好长一段时间没有写东西啦!这篇文章,大致会经过几次修改完成。主要参考了Leetcode的这道题——重新安排行程。其实,这道题目,用图一二三的方法也能解决,但是非常复杂,我花了很长时间。定义下面这段话,请同学们略过。我真是越
2020-09-09 10:48:33 2045
原创 备忘 - 组合与排列的算法实现
组合我的处理方式主要是通过递归方式进行遍历。同时利用boolean[]数组,来判断某个数字有没有被用过。辅助以Stack,进行数据的存储,注意Stack可以是正常的Stack类,也可以是一般的数组。public void iteratePermutation(int n, int k) {// P(n, k) boolean[] used = new boolean[n]; int[] permutation = new int[k]; for (int i = 0 ; i
2020-09-08 12:11:20 219
原创 回文 - 回文的性质
回文的性质以前,一看到回文这两个字我就头大。记得有一次去面试的时候,我看到回文,脑子一片空白(PS: 菜的呀 TvT )。前两天松鼠做了回文的问题,他说其实掌握了回文的性质其实还好。我一听,对!问题的关键在于要先把性质梳理一下,之后很多问题就迎刃而解了!接下来,我们就一步步来吧!回文定义 - Palindrome一个数字或者字符串正读/反读都一样,例如,1221,123454321,“abcdcba”等等。首先,给大家一个判断String是否为回文的算法。public boolean
2020-08-09 17:12:56 3096
原创 SpringBoot - API传参数
鸣谢:文海学长,涛总,健哥@PathVariable @RequestMapping("/hello/{name}") public String hello(@PathVariable("name")String name) { return "Hello " + name; }通过@PathVariable("variable-name")方式可以获取路径里面的参数信息。访问方式:http://localhost:9000/hello/XieDo.
2020-08-09 11:25:26 1141
原创 CSS禅意花园 —— 设计
CSS禅意花园 —— 设计毕业对于论文困难群众来说真是太困难了,目测大家的平均字数都在2.5万左右。昨天“去中财的课程杠杆”花了我一天时间,今天,居然还发了生产实习报告的通知。真是,前有狼,后有虎。在将“本文一共有五章”改为“本文一共有五个章节”后,我动手写这篇读书笔记。这篇读书笔记主要是CSS禅意花园第二章的内容,特别鸣谢把这本书共享给我的学长/学姐(PS: 就是把这本书放在六楼书架的前辈)。仅以此弥补一下我大一打的瞌睡!介绍《CSS禅意花园》是2003年左右发布的,它是为了推广当时的“新
2020-05-20 13:48:17 3655 1
原创 随机——随机取点
随机取点这两天做了LeetCode上面关于Random的系列问题,虽然问题不多,但是能提供解决随机问题的经典思路——按权重采样和拒绝采样。我们这里只是讨论关于随机去点的基本问题,后面没时间的话,可能不会深究。Java Random API首先,当然是最经典的Math.random(); 返回[0,1)的一个double值,区间内任意一个点被取到的概率都是等可能的。double x...
2020-02-05 11:10:50 1153
原创 树(一)树的遍历
树的遍历近期参加复旦互联网协会的刷题营,所以我勉勉强强又开始做题啦。现在变得更务实啦,要想提升能力,超过别人就是要依靠一项项的指标的胜利,这样的评价是更加客观的。想要提升能力,一方面要靠平时的积累,另外一方面也要依靠瓶颈期的奋力一搏。当然,我的意思是更加侧重前者的。话不多说啦,开始今天的话题——树的遍历。如果用递归的方法是非常简单,也是非常推荐的。但是,用迭代的方法也不难!!!所以我决定在这里...
2020-01-31 12:19:02 412
原创 IDEA中Junit4的简单使用
IDEA中Junit4的简单使用github链接:https://github.com/Java-A-2019/Lab6先学一些基本操作,Junit4可以理解成一个测试包,包含了很多测试工具。当然我们现在仅仅学一些很简单的东西,比较高深一点的操作,大家以后会学!高深一点的操作一定会让大家惊叹,我相信这一点。不过,这门课不教 : )。创建项目和测试目录创建项目,so easy...
2019-10-28 11:29:16 722
原创 Java枚举变量各种招式
Java枚举变量此秘笈需要对类和方法的使用有基本了解。github地址:https://github.com/Java-A-2019/JavaEnum/tree/master使用场景1. 有很多种类的情况,但是简单地用1,2,3数字表达,又没有办法满足需要。比方说,我们约定1为空地,2为墙壁,一旦数量多起来,大家就会非常难受。因为大家记不住,不如用Land和Wall表示,这样有语...
2019-10-11 20:17:03 1534
原创 堆(二)优先队列
优先队列使用最大堆或者最小堆来实现一个优先队列是非常合适的。这个优先队列需要实现插入新值、改变键值和抽取最大/最小元素的功能。实现如下:package heap;public class PriorityQueue <T extends Heap> { private T heap; public PriorityQueue(T heap) { ...
2019-09-06 11:22:30 167
原创 堆(一)最大堆和最小堆的实现
最大堆和最小堆的实现这一讲讲的还是堆,因此将它归入到堆(一)中。这一篇博客的目的非常简单,就是补充一下,堆的实现代码。Heap是抽象类,它有两个子类,MaxHeap和MinHeap。至于它们的function,我不再赘述了,请看堆(一)堆排序。HeapHeap,代码如下,它是一个抽象的父类。其实只有两个方法,buildHeap和heapify。其中,heapify方法由子类重写,如果我...
2019-09-05 21:40:01 1209
原创 堆(一)堆排序
堆堆主要应用于维护一个优先队列,当然还有进行堆排序。堆的部分将会分为三个部分来讲,分别是堆排序,优先队列的实现和斐波那契堆,从易到难。本文大部分参考了《算法导论》第六章的内容。堆基础操作和性质二叉堆实际上是用数组实现的,如下图所示(图参考了《算法导论》,使用0-index)。这个是最大堆,最大的元素在堆的顶上。接下来将用list指代下面的数组。将它化成堆,也就是从root开始,...
2019-09-04 22:29:10 169
原创 通过排序解题
通过排序解题有很多问题看上去很棘手,但是,如果先对数据进行排序,问题就会迎刃而解。因为我最近在做排序的问题,所以在这里将这些问题汇总一下,以后方便复查。合并区间题目链接:合并区间。题目意思是,给你一大堆的区间,让你合并一下。小编第一次当然是用暴力的方法,使用2.0+重循环解决了问题。当然,小编并没有偷懒。根据提示,我还使用了图的做法,然而,,,解题的时候超时了,小编觉得这不是我...
2019-08-23 11:25:30 132
原创 图系列(三)判断有向无环图(DAG)
判断有向无环图(DAG)其实,这篇博文是前面两篇的应用,并不算是一个基础操作。看起来可能会有点重复,但是作为巩固复习一下也不错。我感觉最近可能代码贴太多了,我有时间的时候,多加入一些注解吧。可能会适当加一些图。方法一 广度优先遍历 + 入度统计首先,找到入度为0的元素,这个元素肯定是“根”元素。接着,去掉这个元素,并相应减少邻接节点的入度,将新的入度为0的元素加入队列中。这样一系列操作...
2019-08-23 11:22:52 3783 1
原创 图系列(二)图的遍历与拓扑排序
图的遍历与拓扑排序好了,接下来是重中之重图的遍历。图遍历是很多其他算法的基础,比如Dijkstra算法。图的遍历广度优先遍历广度优先遍历的关键是需要借助一个队列。代码如下:class Solution { List<Integer>[] adjs; public void bfs(int n, int[][] edges) { //...
2019-08-18 20:15:24 718
原创 图系列(一)图的表示与入度
图的表示与入度 虽然好像没什么人看,但是我还是写一下,佛系。就当给自己做一个备忘录好了!总算,进入到图系列了。图的部分,问题很多,算法很多,应用也很广。图的两个比较重要的基石就是图的表示和图的遍历。有了这两个才能更好地搭建其他的算法。图的表示 我们知道G = (V, E),所以最原始的表示方式是,int n, int[][] edges。其中,n表示有n个节点...
2019-08-18 20:11:21 5023
原创 链表常见操作(五)排序与递归
排序与递归 好像差不多了, 这是链表的最后一讲了. 这一讲主要讲链表的排序, 要知道, 链表中也存了数据, 既然存了数据, 就无法避免地要面临排序的问题. 那么, 堆排序? 插入排序? 还是归并排序? 还是快速排序呢? 让我们直接看看效果好了!链表排序插入排序法public ListNode sortList(ListNode head) { ListNod...
2019-08-14 14:36:18 408
原创 链表常见操作(四)修改指针与环操作
修改指针与环操作 OK, 八个空格, 我们继续学习链表常见操作. 接下来主要分为两个部分的内容, 第一个部分, 总结链表中修改指针的题目; 第二部分, 讲环形链表! 可能第二个部分比较有干货.链表问题的特性 - 修改指针 链表的问题实际上, 就是修改指针走向的问题. 很多时候多多画图, 用几个临时变量ListNode就可以解决了. 即使想要新建一个链表成本也...
2019-08-14 13:46:23 678
原创 链表常见操作(三)链表长度与翻转
链表长度与翻转 谨以此纪念我在某尼划水的时光! /手动滑稽 继续熟悉链表吧, 接下来介绍使用频率最高的两个操作, 获取链表长度和翻转链表. 真的很简单, 但是使用频率非常高!获取链表长度 首先, 很多人可能认为, 获取链表长度的复杂度是O(n), 代价很高. 其实不然, 我们用这个不等式作为复杂度的标尺: O(1) < O(logn)...
2019-08-14 11:33:48 889
原创 链表常见操作(二)哑表头与倒数K元素
哑表头与倒数K元素链表最大的好处是非常灵活,内存管理和增删都比较方便。弱点是查询的时候几乎没有捷径,必须遍历链表。以及,更改指针会把人弄晕。不过,链表的优点对我们来说太重要了,在JAVA方面内存管理实际上也是一个重要的话题,比如new int[10亿] (4GB 内存没了),java有自己的解决方案,比如链表和BitSet。OK,让我们继续熟悉链表吧!(PS: 这一篇很基础)哑链表头 - ...
2019-08-11 11:49:36 192
原创 链表常见操作(一)快慢指针
快慢指针最近在复习算法与数据结构, 一边写写博客啦。链表辅助类public class ListNode { public int val; public ListNode next; public ListNode(int val) { this.val = val; } public static ListNode cre...
2019-08-09 17:12:19 292
原创 阿里云基础面试
1. c语言为什么还这么流行?c语言的应用场景在哪里? 附上链接:https://www.tomorrow.wiki/archives/1893,这篇文章真心不错。 首先,c语言的快是无法比拟的优势(但是个人觉得好用的话,还是java比较好用)。因此,C语言在快反应的需求上有很大的优势。并且,linux等有大量的c代码库,它们是基本无法重写的(代价太高昂)。应用场景:高...
2019-04-19 11:08:13 2163
原创 docker-compose部署Springboot+Mysql
感谢松鼠和健哥的指导!通过Docker进行一个简单的Jar包的部署。Jar包镜像的制作下面的项目会有一点点问题,就是docker-compose文件对不上,请参照下面的进行修改。此外,application.yml也必须进行相应的更改,需要更改的是数据库的username。City Service项目的github地址:https://github.com/zhaoyangyin...
2019-04-05 20:14:48 1130
原创 JavaScript 自定义模块 Self-Defined Module
为了节省大家的生命!!!本文比较简洁。Node.js自定义库1. 如下图,写好function,module.exports即可,当然也可以导出变量。 function直接写就好了,不用用对象什么的包过起来的。2.require(相对路径,包含“.js”),如下图。使用的方式,hello.hello();3. 运行结果4. 正在学微信小程序的朋友们注意了...
2019-03-16 21:05:51 685
原创 网络适配器的小问题
问题描述:已将所输入的此网络适配器的ip地址 xx.xxx.xxx.xx分配给此计算机上的另外一个适配器“Realtek PCIe GBE Family Controller”。 如果将相同的地址分配给两个适配器,且两个适配器都处于活动状态,则仅有其中一个适配器将使用此地址。这可能会导致系统配置错误。(在配置无线网卡时出现错误)是否要通过在“高级”对话框的IP地址列表中输入此适...
2018-03-10 14:46:36 14451
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人