- 博客(96)
- 资源 (11)
- 收藏
- 关注
原创 知识图谱,每日更新
这篇文章是个人知识技能的一个图谱记载,主要分为五个专题: 算法及其应用、软工基础、设计模式、Java学习笔记、Linux和Chromium。本文为总体介绍,想了解更多,欢迎访问:我的github 、 我的CSDN博客、 我的知识图谱 。备注:您可以首先通过思维导图了解每部分大致内容,然后根据思维导图中的链接跳转到博客,查看具体笔记内容,最后通过博客尾部链接访问我的github。特别...
2018-05-22 00:56:59 1064
原创 面试指南
面试指南是结合本人的若干场面试后,得出的一些经验性总结。包括面试过程中和面试后。面试过程中: 一、自我介绍:1.介绍学校、2.介绍项目(实习经历)、3.自身技术优点(熟悉的技术、课程、目前正在看的书)。 二、主动引导:因为面试官问的问题,不一定能完全回答上来,那么在后续对话中,可以引导面试官询问你的强项(切记装*,后果自负)。面试结束后:一般会问还有什么想问...
2019-03-31 16:23:24 563
原创 Visitor 访问者模式学习笔记
一、什么是访问者模式 访问者模式本质上解决的是多对多的关系。分离了数据结构和业务逻辑,是若干同类不相似的数据结构和其重载方法之间的多对多的对应关系。 例如:一个公司有若干职位,这些职位的工作有些相同有些不同。在这种多对多的关系中,一般采用多态和方法重载来解决。但是对于职位集合中若干不同的职位而言,方法重载无法对抽象出来的父类进行细分和识别,并进一步执行操作,这个时候...
2019-01-06 16:03:05 335
原创 生产者/消费者问题java实现
一、题目描述 1)手写生产者/消费者二、解题思路 方案一):利用线程实现生产者/消费者,结合wait和notify。三、注意事项 1)四、代码实现 见我的github:生产者/消费者问题java实现...
2018-12-27 15:42:31 519
原创 买卖股票的最佳时机
一、题目描述 1)给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。 2)原题目出处:https://leetcode-cn.com/explore/interview/card/bytedance/246/dynamic-pr...
2018-12-17 17:30:26 248
原创 无重复字符的最长子串
一、题目描述 1)无重复字符的最长子串 2)原题目出处:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/description/二、解题思路 方案一):利用滑动窗口来统计无重复字符的最长子串。 ...
2018-12-17 15:59:06 368
原创 判断点是否在区域内
一、题目描述 1)给定一个点的坐标(x,y)和一片区域(若干点组成),判断该点是否在区域内。 2)原题目出处:阿里面试二、解题思路 方案一):光线投射算法。 方案二):夹角法。 方案三):三、注意事项 1)光线投射算法:1.1)射线与多边形的顶点相交,这是交点只能计算一个。 ...
2018-12-15 11:55:26 11587
原创 一百道优秀笔试题
为了接下来的春招,持续更新中...1.计算器2.数独3.判断点是否在区域内4.快递员送货最短路径5.合唱团6.最大子段和7.获取二进制(补码)中1位的数量8.红黑树相关实现9.数组中左小右大的数10.回文题:创造回文、构造回文11.链表相关12.求数组中两两之差绝对值最小的值13.无重复字符的最长子串14. 买卖股票的最佳时机15.手写单...
2018-12-15 11:44:10 428
原创 背包问题(动态规划)
一、问题描述 在限定背包重量的情况下,选择最优价值的物品放入背包,使总体价值最大。二、解题思路 1.确定状态转换方程。 2.找出所选物品。 三、注意事项 1.优化空间复杂度:采用一维数组代替二维数组。但是存在无法回找装入物品的弊端。四、代码实现 见我的github:backpack...
2018-09-22 21:24:07 321
原创 Observer 观察者模式学习笔记
一、什么是观察者模式 被观察者发生改变时,通知观察者。 代码实现:见我的github:观察者模式学习笔记二、存在场景 ATM:你到ATM 机器上取钱,多次输错密码,卡就会被ATM吞掉,吞卡动作发生的时候,会触发哪些事件呢?第一摄像头连续快拍,第二,通知监控系统,吞卡发生;第三,初始化ATM 机屏幕,返回最初状态。你不能因为就吞了一张卡,整个ATM...
2018-09-22 10:53:18 316
原创 Message Queue
一、什么是Message Queue(MQ) dd二、存在场景 A四、代码实现 见我的github:五、参考博客:六、相关延伸:
2018-09-22 10:52:37 511 1
原创 Java实现队列
一、问题描述 Java实现队列:普通队列、循环队列(数组、链队)、优先队列 方法:增加(入队)、删除(出队)、查找、队列长度、 分析:Java jdk中实现形式二、解题思路 三、注意事项 1.。四、代码实现 见我的github:...
2018-09-21 21:14:39 268
原创 完全多部图
一、问题描述 给定一张包含N个点、M条边的无向图,每条边连接两个不同的点,且任意两点间最多只有一条边。对于这样的简单无向图,如果能将所有点划分成若干个集合,使得任意两个同一集合内的点之间没有边相连,任意两个不同集合内的点之间有边相连,则称该图为完全多部图。现在你需要判断给定的图是否为完全多部图。 输入:第一行输入一个整数T表示数据组数,1≤T≤10。每组数据格式...
2018-09-10 12:49:26 1137
原创 将一段压缩后的字符串解压缩,并且排序输出。
一、问题描述 将一段压缩后的字符串解压缩,并且排序输出。 解压:字符串后续跟着的数字表示该字符串需要重复几次。 排序:若相同的数字,如“c2a2”,按照ASCII编码排序,应输出“aacc”。二、解题思路 1)分割出数字或者字母的数组。 2)对数组排序,并且使用选择排序的方式对相同数量...
2018-09-05 20:50:44 2852
原创 数独实现
一、问题描述 给定一个数独矩阵,补充剩余空格,并返回完整的数据或者返回空(不能填充)。二、解题思路三、注意事项 1.四、代码实现 见我的github:Sudoku...
2018-09-03 20:18:55 817
原创 获取二进制(补码)中1位的数量
问题一:获取二进制中1位的数量 解题思路: 方法一:获取二进制正数中1位的数量:右移法 方法二:末尾1取反法,正数 方法三:查表法 方法四:(两两合并的思想)JDK自带...
2018-09-03 20:07:34 752
原创 快排及其优化
本部分内容包括:单向快排、双向快排、快排改进单向快排设计思路 1.同时设两个指针,一个指针代表中间定位mid,另一个指针i从左到右寻找比标杆小的元素(隐藏在for循环中), 2.当i找到比标杆元素小的,发生交换, 3.最后一个比对元素跟标杆元素交换 4.比对结束,由中间结点划分两部分,递归重复...
2018-08-31 23:41:18 3860
原创 查找二叉树中x和y的最小公共父节点
一、问题描述 查找二叉树中x和y的最小公共父节点。 代码实现:见我的github:findxandy二、解题思路 1)写一个查找函数 findx:查找x是否在树2root中。 2)查找 root 的左孩子是否有该结点,递归。 3)查找 root 的右孩子是否有该结点,递归。 4)查找值x 和 y 是否...
2018-08-31 22:04:52 1133
原创 红黑树相关算法
一、题目描述 将数组转化为红黑树(add函数共包含四部分:add()、insertFixup()、rotateRight()、rotateLeft(),增加函数,颜色调整、左旋、右旋)。二、解题思路 步骤一:常规插入:树的二分查找,然后对插入点进行颜色调整。 步骤二:调整方式见下图。 步骤三:部分结点需要进行左旋和右旋。三...
2018-08-30 02:53:19 1150
原创 Java类型赋值(“复制”)
test1:基本类型的复制test1结论:基本类型的复制各自不干扰test2:引用数据类型的复制test2结论:方法栈传参,不改变全局变量
2018-08-29 01:58:20 2244
原创 将string类型的IP地址转化成int
一、题目描述 将string类型的IP地址转化成int。 将int类型数转化成string类型的IP地址。二、解题思路 1)正则表达式对输入的string类型的IP地址进行判断。 2)将IP转化为int。 2.1)首先通过String.split("\\."),将字符串按照"."分开。 ...
2018-08-28 15:37:08 9516 1
原创 赫夫曼树及编码问题(Huffman)
一、题目描述 将数组转化为赫夫曼树。二、解题思路 赫夫曼树本质上是二叉树,赫夫曼树的每一个结点结构如下图: 构建Huffman数组并初始化 寻找最小值和次小值,并构建关系 构建关系 三、注意事项 1)为什么只循环array.length -...
2018-08-28 12:36:05 1130
原创 返回数组中最小的k个数
一、题目描述 返回数组中最小的k个数。二、解题思路 方法一:堆; 方法二:快排 方法一,堆实现: 1) 整堆 2) 交换堆顶和数组末尾元素,循环整堆,注意边界值 3)数组倒叙 方法二,快排实...
2018-08-25 17:32:34 1392
原创 二叉树中最大子路径和
一、题目描述 求二叉树中最大子路径和。二、解题思路 1. 判空根节点。 2. sum加和,并用list存结点。 3. 保存最优解 4. 递归。 5. sum减和,移除list结点三、注意事项 1. list = listtemp,赋值是错误的,容易导致list跟随listte...
2018-08-25 15:36:05 698
原创 排序(归并、桶排、基数排序、计数排序)
本部分内容包括:归并、桶排、基数排序、计数排序代码实现: 见我的github:排序(归并、桶排、基数排序、计数排序)一、归并排序 设计思路1、数组分成两段,每段去排序2、排序时判断这两段是否越界,越界停止返回3、实行归并 注意事项:灌装数组的时候,需要注意temp数组的起始位置。二、桶排序 ...
2018-08-24 15:27:30 296
原创 求数组中两两之差绝对值最小的值
一、问题描述 有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数。(下述的所有解法中,依旧没有实现在O(n)时间内求解的,如果有好方法,求赐教!!!)二、解题思路 方法一:暴力做差,求最小值。时间复杂度O(n^2)。 方法二:排序做差,求相邻最小值。时间复杂度O(nlgn)。 方法三:设这...
2018-08-23 23:17:42 21093 1
原创 数组中左小右大的数
一、问题描述 一个int 数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现。二、解题思路 构建一个数组min_right[],满足min_right[i]是当前位i至最后数组中最小的那个数。 定义一个当前最大值用于比较,定义list用来存数据。 ...
2018-08-23 16:07:47 842
原创 字符串按照排列组合打印
一、问题描述 将输入字符串按照全排列的方式打印输出。二、解题思路 考虑使用回溯法。 确定参数值:字符数组和递归深度。 边界值判断:递归深度到达边界,并且记得return。 i之前的元素已经有序,通过for循环只对后续元素进行全排列。 三、注意事项 ...
2018-08-23 10:38:49 804
原创 大小写互换
一、问题描述 将输入字符串的大小写互换,输出时小写字母按序排在前,大写在后。二、解题思路 1.利用正则表达式将小写字母拨除,并转换成大写字母。 2.利用正则表达式将大写字母拨除,并转换成小写字母。 三、注意事项 1.使用 StringBuffer 完成字符串连接。四、代码实现 ...
2018-08-22 22:58:53 474
原创 统计字符串中首先出现三次的英文字符
一、问题描述 给定一个英文字符串,请写一段代码找出这个字符串中首先出现三次的那个英文字符(需要区分大小写)。二、解题思路 1)方法一(map方法):判断字符是否在map中,在的话加一并且判断是否等于三,等于直接输出,map中没有,则置一。 2)方法二(桶排序):设置26*2个桶,对应位加一。 方法一实现:map方法 ...
2018-08-22 17:19:42 1198
原创 创造回文
一、题目描述 给定一个字符串,问是否能通过添加一个字母将其变为回文串。二、解题思路 方法一: 设置两个指针,头指针指向字符串首部,尾指针指向字符串尾部。若头尾指针相等,头指针加加,尾指针减减,向中间靠拢,若不相等,则进一步判断(头指针++,尾指针)和(头指针,尾指针--)中是否存在回文,运用递归完成。 方法二:既然可以通过添加构造回文,那么也可以...
2018-08-19 01:27:16 257
原创 链表相关(Java实现)
一、问题描述1. 单链表的构造1.1 头插法1.2 尾插法2. 单链表逆置(输入一个链表,从尾到头打印链表每个节点的值)2.1 数组存放,倒序输出2.2 利用栈倒叙输出,不改变链表本身(利用递归输出)...
2018-08-18 01:03:32 5560
原创 构造回文
一、题目描述 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数。二、解题思路 1. 利用最长公共字符串匹配的思路来解题。 2. 得到字符串及自身反转字符串。 3. 构造二维数组,进行匹配。 三、注意事项 数组从1开始循...
2018-08-17 00:28:55 662
原创 Adapter 适配器模式学习笔记
一、什么是适配器模式 适配器模式是一种结构型设计模式。适配器模式的思想是:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 代码实现:见我的github:适配器模式二、存在场景:公司新旧系统合并。三、设计思路 1.两个不同类(以及各自的接口):类A和类B,需要用类B来适配类A。...
2018-08-15 22:01:04 180
原创 Factory 工厂模式学习笔记
一、什么是工厂模式 工厂模式分为三种:简单工厂、工厂模式、抽象工厂。 简单工厂:代替了new操作,由工厂返回对象。 工厂模式:工厂模式模式是对简单工厂模式进一步的解耦,因为在工厂方法模式中是一个子类对应一个工厂类,而这些工厂类都实现于一个抽象接口。 抽象工厂:不再依赖接口,通过反射实现返回任意类的实例。 代码实现:见我...
2018-08-15 22:00:32 276
医疗系统毕业设计,决策类毕业设计(加算法)
2015-08-09
面试用的上的数据结构和一些基础知识
2014-06-26
华为3C网络配置学习资料及模拟器
2014-05-12
计算机网络电子教案谢希仁主编
2013-09-21
存储器作业(cpu与存储器的连接)
2013-05-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人