09 2019 档案
摘要:剑指offer第26题 代码看不懂的话可以看我注释,如果还是没有的话,直接去看剑指offer。 贴代码: public class Main { Node root; boolean HashSubtree(Node root1,Node root2){ boolean result=false;
阅读全文
摘要:剑指offer,我要把所有的链表问题做一遍 其实这里合并链表和和并数组差不多吧,我感觉 假如说是从小往大排序,那么两个节点谁小,待插入指针就指向哪个节点,这里就是用MergeHead来指的,谁小,谁就作为MergeHead的next。 public class Main { Node Merge(N
阅读全文
摘要:剑指offer第18题,说要用O(1)的时间复杂度来删除节点,一下子想不来,看了书才笨笨的想到 如果要删除一个节点,我们势必要找到它的前一个节点,这样就可以删除了,不过,找到前一个节点后,我们的时间复杂度就是O(n)了,所以可以这样想,我们要删除这个节点,不妨用下一个节点的值把待删的值覆盖掉(意思就
阅读全文
摘要:抄自剑指offeroffer 由于步骤要分很多中情况,我就把照片贴这里(懒) 注意(这个二叉树可以找父节点,就是parent节点,和一般二叉树稍微有区别) 贴代码: public class Main { Node root; Node GetNext(Node root){ if(root==nu
阅读全文
摘要:CVTE一面有问过这个问题,问我ThreadLocalMap如何保证了线程之间存储元素的隔离性,我还记得我当时很搞笑的说哦synchronized。。。。。(现在感觉基础不扎实),不废话了 ThreadLocal:保证每个线程都有自己的一片空间(就是个map),而这些空间之间具有隔离性,其他线程在高
阅读全文
摘要:剑指offer面试题3 类似于hash算法,自己画画就明白了 public class Main { public static void getRepeatNumber(int array[]){ if(array.length==0){ return; } for(int i=0;i<array
阅读全文
摘要:单例模式的两种实现方式 1、双端检测 通过volatile来保证线程之间变量的可见性用两个if判断,第一个判断来减少synchronized导致的低效率 //双重检查 /** * Double-Check双重检查,判断if(singleton==null) * 避免反复进行方法同步 * 线程安全;延
阅读全文
摘要:CVTE一面(2019.9.16.3.00——2019.9.16.3.30) 先参加线上笔试,然后通知CVTE面试得 收到短信后第二天就去哪个什么酒店里面试了,面试感觉信心满满,到了现场后。。。。,我还以为CVTE今天招聘会呢,人有点多啊,群里都1500+了 收到预约排队短信后,就进去了,我还记得我
阅读全文
摘要:(递归实现) package pers.chao.niuke.ch1.p1._8从尾到头打印链表; public class Main { Node head; public static void print(Node head){ if(head==null){ return ; }else{
阅读全文
摘要:又想了遍反转链表,我感觉我写的很详细了,你一定能看懂的,注释在代码中。 public class Main { Node getReverseList(Node head){ //如果链表为空或只有一个节点,不需要反转,直接返回就行 if(head==null||head.next==null){
阅读全文
摘要:赶紧来复习一下算法,明天面试手撕算法的话,感觉要凉凉了 这就是剑指offer那道题,没错 用两个栈实现队列,在这之前你也一定了解过什么是队列吧?我就不再说队列了 可以用一个入栈作为入队列栈,用另外一个栈作为出队列栈 public class TwoStackGenerateQueue { stati
阅读全文
摘要:就是剑指offer那道题 应该读题了吧,我就不把题目敲上去了,连续子数组最大和,数组元素可正可负 平安产险现场笔试的时候就遇到这个题:平安产险笔试+一面 使用动态规划来解决: 这样想:求连续子数组之和,把这个问题放小,如果只有两个数组呢,是不是看加了第二个数组和没加第二个数组之间,哪个值比较大,如果
阅读全文
摘要:没错就是剑指offer那倒题,尽量让这个数拆成2,3,这种因子乘积最大。 余三有两种可能,余1,余2,余1的话不如让它余个4(2*2),这个题就结束了 题目:给你一根长度为n的绳子,请把绳子剪成m段,记每段绳子长度为k[0],k[1]...k[m-1],求k[0]k[1]...k[m-1]的最大值。
阅读全文
摘要:定义两个指针,两个指针的间距设置好为K-1后,两个指针同时跑,当后面的指针指到链表尾部的时候,前面的指针就到了倒数第K个节点 public class Solution { public Node FindKthToTall(Node head,int k){ Node phead=head;//后
阅读全文
摘要:二叉树的深度:肯定有好多深度,然后比较得出最深的那一条,按照递归思想也就是两条深度,左子树和右子树 /** * 二叉树的深度 */ public class Main { public static int TreeDepth(TreeNode root) { if (root == null) {
阅读全文
摘要:一般都会让我们去判断二叉树是否是对称的? 看了我的上一篇博客 二叉树的镜像 感觉和这篇博客像像的,其实也就是像像的 对称二叉树:两边相同等的位置的节点的值一样,说白了就是从主树干折过去完全覆盖 代码: public class Main { public boolean isSymmetrical(
阅读全文
摘要:二叉树的镜像:所谓镜像就是从树中间劈开后,两半一样,这就是镜像二叉树 代码实现的时候:从上面的最大的节点向下开始,先交换root下面的两个大的左右子树,大体位置交换之后,在递归交换每一个小的子树,直到交换叶子节点,就完成了 看完后可以感受一下一篇:对称的二叉树 代码: 在交换两个节点,采用就是交换两
阅读全文
摘要:可以通过穷举来找 代码: public class GreedyAlgorithm { public static void main(String[] args) { //创建广播电台,放入到Map HashMap<String,HashSet<String>> broadcasts = new
阅读全文
摘要:看SpringCloud的时候说到了CP,今天重要见到了,记下来。 CAP定理:又称布鲁尔定理,它指出对于一个分布式计算系统来说,不可能同时满足一下三点: 一致性:所有节点在同一时间具有相同的数据可用性:保证每个请求不管成功或者失败都有响应分隔容忍:系统中任意信息的丢失或失败不会影响系统的继续运作
阅读全文
摘要:背包问题解决: 代码: public class KnapsackProblem { public static void main(String[] args) { int []w={1,4,3};//物品的重量 int []val={1500,3000,2000};//物品的价值 这里的val[
阅读全文
摘要:两个月前学习的Servlet的源码,一直放在草稿箱里。之所以看Servlet源码,是因为Spring源码太难了,又臭又长。接下来先来介绍源码都有哪些类和接口,servlet的源码主要是在javax.servlet和javax.servlet.http两个包下面,总共有34个左右的类和接口,下图是核心
阅读全文
摘要:笔试(2019.9.6下午5.50左右),因为是校招现场笔试,所以面试结果出来的特别快 选择题记不清楚了,两个算法题记忆犹新 1、求一个数组的最大子数组之和(我这里用的是动态规划做的) /** * F(i)=max(F(i-1)+array[i],array[i]) * 动态规划 */ public
阅读全文
摘要:2019 9.9,10.00——11.00美团一面 上周在西安的西电找实习,回到住的地方就接到了美团的面试电话,然后我约到了这周周一,因为周一我回学校了,回到了熟悉的地方。 如约而至,今天早晨10点钟,美团面试官提前加了微信,并让我准备一下电脑,可能要手撕算法(我当时就慌了,这一方面,我不是很擅长啊
阅读全文
摘要:冒泡排序 最差时间分析:O(n^2) 平均时间复杂度:O(n^2) public class BubbleSort_ { public static void sort(int array[]){ int i,j; for(i=0;i<array.length-1;i++){ for(j=i;j<a
阅读全文
摘要:是阿里一面,也是阿里最后一面(2019年,9月2日)时长43min 今晚约好了9点多的电话面试如约而至,给我打的是哪个部门的主管,还有阿里面试官很亲切,声音中带着疲惫,进入正题: 面试官打来电话,先让我自我介绍,随后让我说说自己平时在学校的项目经历、或者是活动比赛经历、还有就是简历中项目有什么特别之
阅读全文