自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 剑指Offer: 字符流中第一个不重复的字符

1. 题目描述请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。原题传送门:link.2. 提取关键词字符串3. 思路要遍历整个字符流才能知道一个字符是否只出现了一次。用一个128大小的数组统计每个字符出现的次数用一...

2020-03-31 23:24:10 68

原创 剑指Offer: 表示数值的字符串

1. 题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。 但是"12e",“1a3.14”,“1.2.3”,"±5"和"12e+4.3"都不是。原题传送门:link.2. 提取关键词字符串3. 思路暂无4. 代码(Java)//正则表达式解法public cla...

2020-03-31 22:49:26 78

原创 剑指Offer: 正则表达式匹配

1. 题目描述请实现一个函数用来匹配包括’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配原题传送门:link.2. 提取关键词字符串3. 思路暂无4. 代码(Java)...

2020-03-31 22:46:39 113

原创 剑指Offer: 构建乘积数组

1. 题目描述给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。(注意:规定B[0] = A[1] * A[2] * … * A[n-1],B[n-1] = A[0] * A[1] * … * A[n-2];)原题传送门:link.2. 提取关键词数组3. 思路...

2020-03-31 22:28:50 91

原创 剑指Offer: 数组中重复的数字

1. 题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。原题传送门:link.2. 提取关键词数组3. 思路因为是在一个长度为n的数组里的所有数字都在0到n-1的...

2020-03-31 22:26:06 78

原创 剑指Offer: 把字符串转换成整数

1. 题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0原题传送门:link.2. 提取关键词字符串3. 思路暂无4. 代码(Java)public class Solution{ public int StrToInt(String str) { if (str.equals("...

2020-03-31 22:04:29 136

原创 Java后台开发面试实战(八):讲讲HashMap

感谢牛客网网友提供的面试经验!1. HashMap是什么?HashMap是map接口下常用的集合,它具有查询快,插入删除方便的优点。2. HashMap的底层是怎样的?HashMap的底层是在JDK1.7的时候,是数组和链表;在JDK1.8的时候,底层是数组加链表加红黑树。3. HashMap的扩容机制是怎样的?HashMap的初始容量16,加载因子为0.75,扩容增量是原容量的1倍。...

2020-03-31 21:30:43 153

原创 Java后台开发面试实战(七):操作系统

感谢牛客网网友提供的面试经验!1. 讲一下线程和进程的区别和联系?进程是操作系统资源分配的最小的单位,线程是CPU调度和执行的最小单位。他们的联系可以分为以下四点(可以把把进程比作火车,线程比作车厢。):一个进程里会包含多个线程(一辆火车有多节车厢)。进程要比线程消耗更多的计算机资源(采用多列火车相比多个车厢更耗资源)进程间不会相互影响,一个线程挂掉将导致整个进程挂掉(一列火车不会影响...

2020-03-31 20:53:55 329

原创 Java后台开发面试实战(六):数据库

感谢牛客网网友提供的面试经验!1. 讲一下数据库索引结构?数据库的索引结构是B+树。2. 讲一下B+树相对于B-树的优势?/为什么使用B+树?相比于其他查找树(B-树),B+树单一节点存储更多的关键字,也就是说B+树更加矮胖,使得查询时的平均IO次数更少,查询效率更高;B+树的关键字信息全部存储在叶子结点中,非叶子结点只存储索引地址。所以查询都要从根节点查找到叶子节点,也就是说查...

2020-03-31 17:03:04 167

原创 Java后台开发面试实战(五):Java集合

感谢牛客网网友提供的面试经验!1. 集合常用的有哪几种?从map,list,set三大接口下分类别回答map接口下的:HashMap(首先想起最常用的hashmap,无序,线程不安全,底层是数组加链表加红黑树),HashTable(然后想起线程安全的hashtable),HashTree(然后想起有序的hashtree,底层是红黑树),LinkedHashMap(然后想起有...

2020-03-31 16:09:24 167

原创 Java后台开发面试实战(四):设计模式

感谢牛客网网友提供的面试经验!1. 设计模式的六大原则?单一职责原则(Single responsibility principle,SRP):单一职责规定了一个类应该只有一个发生变化的原因。如果一个类承担了多个职责,则会导致多个职责耦合在一起。但部分职责发生变化的时候,可能会导致其余职责跟着受到影响,也就是说我们的程序耦合性太强,不利于变化。里氏替换原则(Liskov Substitut...

2020-03-31 14:31:50 186

原创 Java后台开发面试实战(三):ACID

感谢牛客网网友提供的面试经验!1. 事务的四种特性?原子性(Atomicity):事务作为一个整体被执行 ,要么全部执行,要么全部不执行;一致性(Consistency):保证数据库状态从一个一致状态转变为另一个一致状态;隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行;持久性(Durability):一个事务一旦提交,对数据库的修改应该永久保存...

2020-03-30 22:44:00 216

原创 Java后台开发面试实战(二):TCP三次握手四次挥手

感谢牛客网网友提供的面试经验!1. 解释一下TCP三次握手四次挥手图片来源:https://www.jianshu.com/p/29868fb82890答: 嗯…(稍作思考),TCP协议是一种可靠的协议,在正式传输数据之前必须通过三次握手建立连接并且互相交换窗口大小。在传输结束之后,通过四次挥手来确认双方都结束数据交互。三次握手详细来说,在数据传输开始前:第一次握手:客户端向服务端...

2020-03-30 21:58:19 394 2

原创 Java后台开发面试实战(一):java基础

面经来源:牛客网,感谢网友小米提供的信息!注:本系列文章只截取涉及专业知识的问题,并总结口语化的答案。1. Spring可以被继承吗?此题涉及Spring框架的基本知识,首先要知道Spring和继承两个名词的含义。1. 什么是Spring: link.2.什么是继承:可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。Spring支持继承,可以分为类继承和属性继承。...

2020-03-30 18:21:58 405

原创 Java常见问题(三十):JVM是什么?

1. 回答2. 题目拓展

2020-03-30 09:29:00 109

原创 Java常见问题(二十九):JVM常用内存调优命令

1. 回答答: JVM在内存调优方面,提供了几个常用的命令,分别为jps,jinfo,jstack,jmap以及jstat命令。分别介绍如下:jps:主要用来输出JVM中运行的进程状态信息,一般使用jps命令来查看进程的状态信息,包括JVM启动参数等。jinfo:主要用来观察进程运行环境参数等信息。jstack:主要用来查看某个Java进程内的线程堆栈信息。jstack pid 可以看到当...

2020-03-30 09:27:27 225

原创 Java常见问题(二十八):JVM中的垃圾收集器有了解吗?CMS收集器是怎么一回事?

题目分析:暂无1. 回答JVM中的垃圾收集器主要包括7种,即Serial,Serial Old,ParNew,Parallel Scavenge,Parallel Old以及CMS,G1收集器。CMS(Concurrent Mark Sweep)收集器:CMS收集器是一种以获取最短回收停顿时间为目标的收集器。CMS收集器是基于标记-清除算法实现的,是一种老年代收集器,通常与Pa...

2020-03-30 09:26:37 106

原创 Java常见问题(二十七):Java中的类加载机制是什么

一.自我介绍:面试官好,我的名字叫徐明晓,现在在大连海事大学就读研二,我的专业是计算机技术,学制是三年。我在研究生期间的科研项目是: 基于混沌系统的图像加密系统,简单来说就是研究加密的,加密的对象是图像,加密的主要工具是混沌系统,其他方法是为此服务的。因为我们实验室是科研为主,所以没有机会去参与横向的项目。想应聘贵公司的暑期实习工作。二.项目相关:1. 什么是混沌系统?混沌系统用一个比较普...

2020-03-30 09:23:18 102 2

原创 Java常见问题(二十六):JVM垃圾回收算法有哪些?

题目分析:暂无1. 回答HotSpot 虚拟机采用了root根搜索方法来进行内存回收,常见的回收算法有标记-清除算法,复制算法和标记整理算法。2. 题目拓展暂无...

2020-03-29 22:46:51 76

原创 Java常见问题(二十五):JVM如何判定一个对象是否应该被回收?

题目分析:暂无1. 回答判断一个对象是否应该被回收,主要是看其是否还有引用。判断对象是否存在引用关系的方法包括引用计数法以及root根搜索方法。2. 题目拓展暂无...

2020-03-29 22:45:31 295

原创 Java常见问题(二十四):JVM中内存分配与垃圾回收

题目分析:暂无1. 回答JVM的内存可以分为堆内存和非堆内存。堆内存分为年轻代和老年代。年轻代又可以进一步划分为一个Eden(伊甸)区和两个Survivor(幸存)区组成。2. 题目拓展暂无...

2020-03-29 22:43:40 166

原创 Java常见问题(二十三):JVM中的区域是怎么划分的?

题目分析:可以先记住四大基本类型,再记忆下属类型。1. 回答JVM中的内存主要划分为5个区域,即方法区,堆内存,程序计数器,虚拟机栈以及本地方法栈。方法区:方法区是一个线程之间共享的区域。常量,静态变量以及JIT编译后的代码都在方法区。主要用于存储已被虚拟机加载的类信息,也可以称为“永久代”,垃圾回收效果一般,通过-XX:MaxPermSize控制上限。堆内存:堆内存是垃圾回收的主要场...

2020-03-29 22:40:40 134

原创 剑指Offer: 不用加减乘除做加法

1. 题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。原题传送门:link.2. 提取关键词运算3. 思路按位与是查看两个数哪些二进制位都为1,这些都是进位位,结果需左移一位,表示进位后的结果异或是查看两个数哪些二进制位只有一个为1,这些是非进位位,可以直接加、减,结果表示非进位位进行加操作后的结果n1&n2是查看有没有进位位了,如果...

2020-03-29 16:38:51 77

原创 剑指Offer: 求1+2+3+...+n

1. 题目描述求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。原题传送门:link.2. 提取关键词递归3. 思路难点为:如果使用嵌套的话无法定义嵌套终止条件解题思路:需利用逻辑与的短路特性实现递归终止。当n==0时,(n>0)&&((sum+=Sum_Solut...

2020-03-29 16:35:28 151

原创 剑指Offer: 孩子们的游戏(圆圈中最后剩下的数)

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

2020-03-29 16:28:05 228

原创 剑指Offer: 扑克牌顺子

1. 题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面...

2020-03-29 15:49:31 113

原创 剑指Offer: 翻转单词顺序列

1. 题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?原题传送门:lin...

2020-03-29 15:05:06 96

原创 剑指Offer: 左旋转字符串

1. 题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!原题传送门:link.2. 提取关键词滑动窗口3. 思路旋转:”abc”,为“cb...

2020-03-29 12:38:15 98

原创 剑指offer: 和为S的两个数字

1. 题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输出描述:输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从>小到大的顺序原题传送门:link.2. 提取关键词滑动窗口3. 思路数列满足递增,设两个头尾两个指针i和j,若ai + aj == su...

2020-03-29 12:28:58 57

原创 剑指Offer: 和为S的连续正数序列

1. 题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述:输出所有和为S的连续正数...

2020-03-29 12:13:34 42

原创 剑指Offer: 数组中只出现一次的数字

1. 题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。原题传送门:link.2. 提取关键词异或运算3. 思路此题考察的是异或运算的特点:即两个相同的数异或结果为0。此题用了两次异或运算特点:1)第一次使用异或运算,得到了两个只出现一次的数相异或的结果。2)因为两个只出现一次的数肯定不同,即他们的异或结果一定不为0,一定有一个...

2020-03-29 12:08:20 62

原创 剑指Offer: 平衡二叉树

1. 题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。原题传送门:link.2. 提取关键词二叉树深度3. 思路从下往上遍历,如果子树是平衡二叉树,则返回子树的高度;如果发现子树不是平衡二叉树,则直接停止遍历4. 代码(Java)public class Solution { public boolean IsBalanced_Solution(TreeNode ...

2020-03-29 12:01:35 98

原创 剑指Offer: 二叉树的深度

1. 题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。原题传送门:link.2. 提取关键词二叉树深度3. 思路见注释4. 代码(Java)/**public class TreeNode { int val = 0; TreeNode left = null; TreeN...

2020-03-28 23:24:58 133

原创 剑指Offer: 数字在排序数组中出现的次数

1. 题目描述统计一个数字在排序数组中出现的次数。原题传送门:link.2. 提取关键词折半查找3. 思路看到排序,想到折半查找;由于是有序的,相同的数字一定是靠着,找到后左右寻找有几个相同的值。4. 代码(Java)//排序数组,是关键,这是升序还是降序?默认升序吧,如果不是要加判断的public class Solution { public int GetNu...

2020-03-28 23:10:30 137

原创 剑指Offer: 两个链表的第一个公共结点

1. 题目描述输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)原题传送门:link.2. 提取关键词哈希数组3. 思路首先将两个指针全部遍历到链表的尾部然后长链表的长度len1减去短链表len2的长度得len1-len2然后设置短链表指针指针从头出发,长链表指针从len1-len2处出发第一个交点...

2020-03-28 22:13:05 87

原创 剑指Offer: 数组中的逆序对

暂时不做,搁置https://www.nowcoder.com/practice/96bd6684e04a44eb80e6a68efc0ec6c5?tpId=13&tqId=11188&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

2020-03-28 21:42:06 76

原创 剑指Offer: 第一个只出现一次的字符

1. 题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).原题传送门:link.2. 提取关键词哈希数组3. 思路建立一个key为字符,val为次数(整数类型)的哈希map;遍历字符串,将字符和次数插入到哈希map中;规则为:定义time就是字符出现的次数,每出现...

2020-03-28 21:32:01 83 1

原创 剑指Offer:丑数

1. 题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323原题传送门:link.2. 提取关键词丑数3. 思路https://www.nowcoder.com/profile/835689/codeBookDetail?submissionId=15226...

2020-03-28 20:51:28 79

原创 剑指Offer:把数组排成最小的数

1. 题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323原题传送门:link.2. 提取关键词字符串3. 思路自定义一个比较大小的函数,比较两个字符串s1, s2大小的时候,先将它们拼接起来,比较s1+s2,和s2+s1那个小,由于求能排成的最小数字...

2020-03-28 16:42:05 139

原创 剑指Offer:整数中1出现的次数(从1到n整数中1出现的次数)

1. 题目描述求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。原题传送门:link.2. 提取关键词字符串3. 思路用了比较"蠢"的办法s.append( )方法: 创建了一个新的数组,扩大了长度,将需要添加的字符串给复制到这个新的数组中4. 代码(Java)public class Solution { public int NumberOf1B...

2020-03-28 16:26:17 124

空空如也

空空如也

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

TA关注的人

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