自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 interview_code

循环队列package other;/** * Created by fangjiejie on 2020/4/3. * 循环队列:使用具有一定容量的数组装载元素时,避免“假溢出”现象:已经达到数组尾部,不可再插入新的元素,会因数组越界出错 * 而实际可用空间还没使用完。解决方案 是将顺序队列从逻辑上堪称一个环,成为循环队列,循环队列的首尾相接 * <p> * 注意len的计算方式 */public class CycleQueue { int size = 0;

2020-09-17 14:53:45 208

原创 设计模式学习

单例模式饿汉式:package designPatterns;/** * Created by fangjiejie on 2020/9/9. *//** * @author : liyafang * @description :单例模式 * @date : 2020-09-09 19:30 */public class Singleton { public static volatile Singleton instance = null; public Single

2020-09-17 11:14:45 177

原创 2020.04.07网易笔试

第一题:求数列差的最大公约数题目描述:牛牛有一个长度为n的数组a,你要找到一个最大的正整数d,使得对于所有i(1<=i<=n),a[i+1]-a[i]是d的倍数。输入:第一行一个正整数n第二行n个正整数输出:若d不存在,输出-1,否则输出最大的d笔试时,忘了辗转相除法,没AC,看了网友思路后,写了如下代码,样例可过,不知能否ACclass Main1_2 { p...

2020-04-08 22:00:01 1182 4

原创 字符串类算法题---回文串、同构字符串、回文数、计数二进制子串

1.最长回文串力扣传送门 /* * 计算一组字符集合可以组成的回文字符串的最大长度 * */ public int longestPalindrome(String s) { if (s == null || s.length() == 0) return 0; int sMap[] = new int[128]; ...

2020-04-06 11:28:39 347 1

原创 数组、矩阵类算法题

一.移动零力扣传送门给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。 /* * 把数组中的 0 移到末尾 * */ public void moveZeroes(int[]...

2020-04-04 15:02:44 1137

原创 二分法---打开新思路

一.寻找重复数力扣传送门题目:给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。...

2020-04-04 10:14:42 210

原创 阿里笔试2020.3.23 第一题

当时没有做出来,现在写一写思路。题目:现有n个人,要从这n个人中选任意数量的人组成一只队伍,再在这些人中选出一名队长,求不同的方案对10^9+7取模的结果。如果两个方案选取的人的集合不同或选出的队长不同,则认为这两个方案是不同的。分析:因为选择过程与顺序无关,从n个不同元素中取出m个元素的组合数为c(n,m)。则总的方案数为1 * C(n,1)+2 * C(n,2)+3 * C(n,3)...

2020-04-02 11:59:52 1213

原创 判断二分图

判断二分图力扣传送门给定一个无向图graph,当这个图为二分图时返回true。如果我们能将一个图的节点集合分割成两个独立的子集A和B,并使图中的每一条边的两个节点一个来自A集合,一个来自B集合,我们就将这个图称为二分图。graph将会以邻接表方式给出,graph[i]表示图中与节点i相连的所有节点。每个节点都是一个在0到graph.length-1之间的整数。这图中没有自环和平行边: gr...

2020-03-31 17:58:04 246

原创 并查集---冗余连接

冗余连接力扣传送门在本问题中, 树指的是一个连通且无环的无向图。输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, …, N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。每一个边的元素是一对[u, v] ,满足 u < v,表示连接顶点u 和v的无向图的边。返回一条可以删去的边,使得结果图...

2020-03-31 16:23:19 182

原创 拓扑排序类题目

1.课程安排的合法性力扣传送门题目:你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]]输出: true解释: 总共有...

2020-03-30 19:00:55 368

原创 记阿里笔试2020.3.23惨痛经历

一共两个题。笔试时先通读了两个题的题目。因为第二题有思路觉得简单就先写的第二题。结果20分钟写完代码,挑了30分钟bug,都没搞出来,最后坑在±号上。根据记忆上题目:给你一个迷宫,包括一个起点‘S’和一个终点‘E’,‘#’表示障碍,不可到达的位置,‘.'表示可以到达的位置,另外你可以跳跃,跳跃的规则是从一个点跳到他中心对称的那个点上,最多跳跃5次,求从起点到达终点的最短路径长度。我清楚的记得,题...

2020-03-29 19:58:35 952

原创 开发标注系统时遇到的并发问题总结

数据批次表:public class SmsMarkBatch { private Long id; private String batchname; private String inittype; private Integer smscount; private Integer typemarkcount; private Int...

2020-03-29 19:36:19 324

原创 数据库索引相关知识点

什么是索引?索引是存储表中一个特定列的值数据结构。B-是最常用的。因为时间复杂度低,查找、删除、插入操作都可一在对数时间内完成。因为存储在B-Tree中的数据是有序的。把数据库索引看作是书的索引数据库索引是怎样提升性能的?避免全表扫描,通过缩小一张表中需要查询的记录/行的数目来加快搜索的速度。如B-Tree其中的数据是有序的,已经排序意味着查询会快很多。索引存储了表中相应行的指针可以获...

2020-02-21 16:21:05 288

原创 HashMap相关知识点

一. 谈谈你理解的 HashMap,讲讲其中的 get put 过程。1.7版本:(数组+链表)put():判断当前数组是否需要初始化。如果 key 为空,则 put 一个空值进去。根据 key 计算出 hashcode。根据计算出的hashcode 定位出所在桶。如果桶是一个链表则需要遍历判断里面的 hashcode、key 是否和传入 key相等,如果相等则进行覆盖,并返回原来...

2020-02-13 11:23:51 259

原创 搜索---回溯

Backtracking(回溯)属于 DFS。普通 DFS 主要用在 可达性问题 ,这种问题只需要执行到特点的位置然后返回即可。而 Backtracking 主要用于求解 排列组合 问题,例如有 { ‘a’,‘b’,‘c’ } 三个字符,求解所有由这三个字符排列得到的字符串,这种问题在执行到特定的位置返回之后还会继续执行求解过程。因为 Backtracking 不是立即返回,而要继续求解,因...

2019-11-15 10:25:07 213

原创 搜索---深度优先搜索

深度优先搜索在得到一个新节点时立即对新节点进行遍历从一个节点出发,使用 DFS 对一个图进行遍历时,能够遍历到的节点都是从初始节点可达的,DFS 常用来求解这种 可达性 问题。在程序实现 DFS 时需要考虑以下问题:栈:用栈来保存当前节点信息,当遍历新节点返回时能够继续遍历当前节点。可以使用递归栈。标记:和 BFS 一样同样需要对已经遍历过的节点进行标记。1. 查找最大的连通面积/*...

2019-11-15 10:10:05 124

原创 搜索---广度优先

广度优先搜索一层一层地进行遍历,每层遍历都以上一层遍历的结果作为起点,遍历一个距离能访问到的所有节点。需要注意的是,遍历过的节点不能再次被遍历。每一层遍历的节点都与根节点距离相同。设 di 表示第 i 个节点与根节点的距离,推导出一个结论:对于先遍历的节点 i 与后遍历的节点 j,有 di <= dj。利用这个结论,可以求解最短路径等 最优解 问题:第一次遍历到目的节点,其所经过的路径为最...

2019-11-15 09:55:12 157

原创 动态规划---字符串编辑问题

1.编辑距离 /* * 最小编辑代价 * */ public int minCost(String str1,String str2,int ic,int dc,int rc){ if(str1==null||str2==null) return 0; char s1[]=str1.toCharArray(); char...

2019-11-14 16:32:05 248

原创 动态规划---股票交易问题总结

1.股票交易—需要冷却期 /* * 题目:需要冷却期的股票交易 * 题目描述:交易之后需要有一天的冷却时间。 * */ public int maxProfit(int[] prices) {//方案一 if(prices==null||prices.length==0||prices.length==1) return 0; ...

2019-11-14 15:55:20 312

原创 动态规划---序列问题(最长公共,最长递增,最长公共递增,最长数对,最长摆动)

1.最长递增子序列 /* * 最长递增子序列 * */ public int lengthOfLIS(int[] nums) {//方案一:时间复杂度0(N^2) int n = nums.length; if (n == 0) return 0; int dp[] = new int[n];//dp[i]表示以i元素...

2019-10-22 10:29:17 240

原创 动态规划---背包问题总结

背包问题:有一个容量为 N 的背包,要用这个背包装下物品的价值最大,这些物品有两个属性:体积 w 和价值 v。定义一个二维数组 dp 存储最大价值,其中 dp[i][j] 表示前 i 件物品体积不超过 j 的情况下能达到的最大价值。设第 i 件物品体积为 w,价值为 v,根据第 i 件物品是否添加到背包中,可以分两种情况讨论:第 i 件物品没添加到背包,总体积不超过 j 的前 i 件物品的最...

2019-10-20 23:20:13 327

原创 递归、分治

最接近点对题目描述:在二维空间内找到两个距离最近的点思路:选取一垂直线l: x = m来作为分割直线,其中m为S中各点x坐标的中位数。将S分割为S1和S2。递归地在S1和S2上找出其最小距离d1和d2,并设d = min{d1, d2},S中的最接近点对是d,或者是某个{p, q},其中p∈S1且q∈S2。候选点 p 和 q 到直线l 的距离不能超过d,则只需考虑区间P1和P2的范...

2019-10-09 23:16:41 213

原创 排序类算法阶段性总结

1.快速排序 /* * 快速排序 * 不稳定:在一个待排序队列中,A和B相等,且A排在B的前面,而排序之后,A排在了B的后面.这个时候,我们说这种算法是不稳定的. * */ public void fastSort(int a[], int start, int end) { if (start >= end) return; ...

2019-10-08 23:00:15 197

原创 贪心算法--常见问题总结

什么是贪心算法?贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法。贪婪算法所得到的结果往往不是最优的结果(有时候会是最优解),但是都是相对近似(接近)最优解的结果。贪心解决问题的基本思路?1.建立数学模型来描述问题2.把求解的问题分成若干个子问题3.对每一子问题求解,得到子问题的局部最优解4.把子...

2019-10-02 13:26:16 2104

原创 在一个有重复元素的数组中查找 key 的最左(右)位置

package leetcode;import org.testng.annotations.Test;/** * Created by fangjiejie on 2019/9/21. */public class BinarySearch { @Test public void test() { int a[] = {1, 2, 3, 4, 4,...

2019-09-21 19:54:31 521

原创 枚举、二分问题总结

枚举算法设计步骤:1.确定枚举对象2.逐一列举可能解3.逐一验证可能解例题:数组配对—枚举题目描述给你一个长度为n的数组和一个正整数k,问从数组中任选两个数使其和是k的倍数,有多少种选法对于数组a1=1 , a2=2 , a3=2而言:(a1,a2)和(a2,a1)被认为是同一种选法;(a1,a2)和(a1,a3)被认为是不同的选法。输入数据第一行有两个正整数n,k。n&lt...

2019-09-20 12:11:01 1702 2

原创 简单背包---递归

解题思路:对每一个物品有两种选择,要或者不要(1/0),从第一个物品一直遍历到最后一个物品,一共有2的n次方种组合方式,对每一种组合判断是否符合携带条件。代码:package homeWork.SeatWork1;import java.util.Scanner;/** * Created by fangjiejie on 2019/9/19. */public class ...

2019-09-20 10:51:54 570

原创 连续子序列的最大和

求连续子数组的最大和解法一:三层循环,时间复杂度为(o(n^3))思路:思路简单,做法暴力。确定一个首元素,一个尾元素,将这两个元素中间的值都加起来,计算每一个子序列的和,取最大的那个值。 public static int maxSubSum1(int a[]) { int max = Integer.MIN_VALUE; for (int i = 0; i ...

2019-09-03 17:40:16 457

原创 洗牌算法

洗牌算法怎样才够乱? 一副扑克54张牌,有54!种排列方式。你所给出的洗牌算法,应该能够等概率地生成这54!种结果中的一种。 一般方法: 1.利用一个List 2.每次从数组中,随机找到一个数;若该数没有被选择过,那么就将它放入List中;如果被选择过,就重新随机 3.时间复杂度O(n*n) 优化洗牌算法:...

2018-05-23 21:01:09 468

原创 链表中是否有环?如果有找到入口结点

1.简单思路做法 首先从头节点开始,依次遍历单链表的每一个节点。每遍历到一个新节点curNode,就从头节点重新遍历新节点之前的所有节点,看是否有与curNode相同的结点。 时间复杂度O(n*n);空间复杂度O(1) 2.用HashSet存储。 建立泛型为结点类型的HashSet,用来存储曾经遍历过的结点。如果新存入的结点发现hashSet中已存在该节点。则说明链表中有环。 时间复杂度...

2018-05-23 18:05:58 293

原创 大量数据处理问题

找到大数据中的前100个大的数据集1. 根据快速排序划分的思想 (1)递归对所有数据分成[a,b)b(b,d]两个区间,(b,d]区间内的数都是大于[a,b)区间内的数 (2)对(b,d]重复(1)操作,直到最右边的区间个数小于100个。注意[a,b)区间不用划分 (3) 返回上一个区间,并返回此区间的数字数目。接着方法仍然是对上一区间的左边进行划分,分为[a2,b2)b2(b2,...

2018-05-21 21:35:46 1684

原创 hibernate和mybatis对比

第一方面:开发速度的对比就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉得要用好Mybatis还是首先要先理解好Hibernate。比起两者的开发速度,不仅仅要考虑到两者的特性及性能,更要根据项目需求去考虑究竟哪一个更适合项目开发,比如:一个项目中用到的复杂查询基本没有,就是简单的增删改查,这样选择hiberna

2018-04-24 09:17:46 345

原创 计算机网络

一、概述网络的网络ISP主机之间的通信方式电路交换与分组交换时延计算机网络体系结构*二、物理层通信方式带通调制信道复用技术三、数据链路层信道分类三个基本问题局域网PPP 协议CSMA/CD 协议*扩展局域网*MAC 层*四、网络层*网际协议 IP 概述IP 数据报格式IP 地址编址方式IP ...

2018-04-12 19:26:59 432

转载 高性能Mysql学习

一、存储引擎InnoDBMyISAM比较二、数据类型整型浮点数字符串时间和日期三、索引索引分类索引的优点索引优化B-Tree 和 B+Tree 原理四、查询性能优化五、切分垂直切分水平切分切分的选择存在的问题六、故障转移和故障恢复参考资料一、存储引擎InnoDBInnoDB 是...

2018-04-07 12:36:02 644 1

转载 基本SQL

一、基础二、创建表三、修改表四、插入五、更新六、删除七、查询八、排序九、过滤十、通配符十一、计算字段十二、函数十三、分组十四、子查询十五、连接十六、组合查询十七、视图十八、存储过程十九、游标二十、触发器二十一、事务处理二十二、字符集二十三、权限管理参考资料一、基础模式定义了数据如何存储、存储什么样的数据以及数据如何分解等信息,数据库和表都有模式。主

2018-04-06 20:55:40 428

原创 操作系统复习

一、 概述操作系统基本特征操作系统基本功能系统调用大内核和微内核中断分类二、进程管理进程与线程进程状态的切换调度算法进程同步经典同步问题进程通信三、死锁死锁的必要条件死锁的处理方法四、内存管理虚拟内存分页与分段分页系统地址映射页面置换算法五、设备管理磁盘调度算法六、链接...

2018-04-02 13:11:31 935 1

转载 Java基础复习---较为全面

感谢文章转自:https://github.com/CyC2018/Interview-Notebook/blob/master/notes/Java%20%E5%9F%BA%E7%A1%80.md 一、关键字finalstatic二、Object 通用方法概览clone()equals()四、继承访问权限抽象类与接口super...

2018-04-01 19:14:13 1926

原创 我的项目---聊天室(JSP+Servlet+javabean)

github地址:https://github.com/stubbornA/chatroom项目功能:1.全屏/退出全屏 2.登录,退出登录 3.注册 4.选择聊天室 5.查看聊天室记录,查看聊天室成员 6.发布聊天信息项目完成过程:1.完成前端界面 技术:html+css+javascript+jquery+bootstrap 描述:其中,背景使用了...

2018-03-29 11:29:41 3724 1

原创 美团点评2018春招后台开发方向编程题 - java题解

第一题:字符串距离题目: 给出两个相同长度的由字符 a 和 b 构成的字符串,定义它们的距离为对应位置不同的字符的数量。如串”aab”与串”aba”的距离为 2;串”ba”与串”aa”的距离为 1;串”baa”和串”baa”的距离为 0。下面给出两个字符串 S 与 T,其中 S 的长度不小于 T 的长度。我们用|S|代表 S 的长度,|T|代表 T 的长度,那么在 S 中一共有|S|

2018-03-23 18:13:25 885

原创 约瑟夫环

题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数….这样下去….直到剩下...

2018-03-23 12:06:44 221

空空如也

空空如也

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

TA关注的人

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