随笔分类 - 面试
摘要:本题要求时间复杂度为log(m+n),不让合并用额外的空间:算法描述:1 选定两个数组A,B并计算长度,根据长度和m+n是偶数还是奇数,分为两种查找中位的方式;如果和为偶数:Value[(m+n)/2]+Value[(m+n)/2+1]如果为奇数:Value[(m+n)/2]2 然后通过迭代计算中位数通过假定A长度小于B,然后选择每个数组的中间k/2元素,如果A的中位数,小于B的中位数,则A中位数前面的元素都小于value(k),这样重新选择A的起始点,并减去k值为k-pa;如果,B中的小,这让B的长度减去pb,然后重新开始;重视让A的长度小于B的长度;k每次递减,m,n分别表示数组剩余长度;
阅读全文
摘要:package com.bupt.acm.leetcode;public class SurroundedRegions { public void solve(char[][] board){ boolean up,down,left,right; for(int i=1;i<board.length-1;i++){ for(int j=1;j<board[0].length-1;j++){ up=down=left=right=false; if(board[i][j]=='...
阅读全文
摘要:There areNchildren standing in a line. Each child is assigned a rating value.You are giving candies to these children subjected to the following requirements:Each child must have at least one candy.Children with a higher rating get more candies than their neighbors.package com.bupt.acm.leetcode;impo
阅读全文
摘要:该算法更为巧妙,不用保存原始链表的映射关系,构建新节点时,指针做如下变化,即把新节点插入到相应的旧节点后面:1、构建新节点random指针:new1->random = old1->random->next, new2-random = NULL, new3-random = NULL,new4->random = old4->random->next2、恢复原始链表以及构建新链表:例如old1->next = old1->next->next, new1->next = new1->next->next本人额原算法超时:
阅读全文
摘要:本文算法对于:大数据aaaaaaaaaaaaaaaaaaaaaaa;无法通过时间越界Last executed input:"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab", ["a","aa","aaa","aaaa","aaaa
阅读全文
摘要:public class LRULinkedHashMap extends java.util.LinkedHashMap { public final int maxCapacity; public LRULinkedHashMap(int capacity){ this.maxCapacity=capacity; } @Override protected boolean removeEldestEntry(java.util.Map.Entry eldest) { // TODO Auto-generated method stu...
阅读全文
摘要:怎么记忆稳定性:总过四大类排序:插入、选择、交换、归并(基数排序暂且不算)比较高级一点的(时间复杂度低一点得)shell排序,堆排序,快速排序(除了归并排序)都是不稳定的,在加上低一级的选择排序是不稳定的。比较低级一点的(时间复杂度高一点的)插入排序, 冒泡排序,归并排序,基数排序都是稳定的。
阅读全文
摘要:实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别:其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部。如果您翻完了所有以“a”开头的部分仍然找不到这个字,那么就说明您的字典中没有这个字;同
阅读全文
摘要:进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:简而言之,一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做
阅读全文
摘要:内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。(其实说白了就是该内存空间使用完毕之后未回收)即所谓内存泄漏。内存泄漏形象的比喻是“操作系统可提供给所有进程的存储空间正在被某个进程榨干”,最终结果是程序运行时间越长,占用存储空间越来越多,最终用尽全部存储空间,整个系统崩溃。所以“内存泄漏”是从操作系统的角度来看的。这里的存储空间并不是指物理内存,而是指虚拟内存大小,这个虚拟内存大小取决于磁盘交换区的设定的大小由程序申请的一块内存,且没有任何一个指针指向它,那么这块内存就泄露了。以发生的方式来分类,内存泄漏可以分为4类:
阅读全文
摘要:题目:从扑克牌中随机的选5张牌,大小王可以表示任何数,验证五张牌是否为顺子package com.bupt.acm;import java.util.Arrays;import java.util.Scanner;/** * 扑克牌的顺子 * @author dell * */public class Main24 { public static void main(String[] args){ Scanner scanner=new Scanner(System.in); int n=5; int[] numb=new int[n]; ...
阅读全文
摘要:题目:一个整型数组里除了两个数字外,其他的数字都出现了两次,请写一个程序找出只出现一次的数字,要求时间复杂度O(n),空间复杂度O(1)算法:首先对所有数字取异或,找到结果中有一位不为0的位置,然后,对所有元素分组,分为两个部分;然后对每个部分分别取异或import java.util.*;public class Main21 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n; int[] numb; ...
阅读全文
摘要:缓存淘汰算法系列之1——LRU类1.LRU1.1.原理LRU(Leastrecentlyused,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。1.2.实现最常见的实现是使用一个链表保存缓存数据,详细算法实现如下:1.新数据插入到链表头部;2.每当缓存命中(即缓存数据被访问),则将数据移到链表头部;3.当链表满的时候,将链表尾部的数据丢弃。Cache替换算法是影响代理缓存系统性能的一个重要因素,一个好的Cache替换算法可以产生较高的命中率。目前已经提出的算法可以划分为以下三类:(1)传统替换算法及其直接演化,其代表算
阅读全文
摘要:但为什么一个方法前不能同时加abstract与static呢?static是静态,就是在编译时已经确定的东西,当然不能是抽象(动态)的,那是运行时才能确定的东西一,抽象类:abstract 1,只要有一个或一个以上抽象方法的类,必须用abstract声明为抽象类; 2,抽象类中可以有具体的实现方法; 3,抽象类中可以没有抽象方法; 4,抽象类中的抽象方法必须被它的子类实现,如果子类没有实现,则该子类继续为抽象类 5,抽象类不能被实例化,但可以由抽象父类指向的子类实例来调用抽象父类中的具体实现方法;通常作为一种默认行为; 6,要使用抽象类中的方法,必须有一个子类继承于这个抽象类,并实现抽象类中的
阅读全文
摘要:通知我21早上9:30开始,早上8:40就到了,前台上面没有我名单,我就打电话询问HR,说没关系,面试官在路上,等一下,大概到10点左右,HR领我进去见面试官,解释说昨晚从杭州来北京,有点晚,让你久等了,我说没事。面试官个子很高的样子,有点零星白头发,器宇不凡,一看就是个级别很高。进来问好,然后让我坐下面试官说:我们是1688技术部的面试,现在就开始吧。01. 介绍一下你技术方面刚开始有点紧张,说的有点断断续续,中间还有HR MM进来,另外一个mm进来给面试官端水02. 性能优化方面我理解为代码层面的我:一是:HTML层次结构不要太深,层次结构深会xx...二是:防止内存泄露,DOM和java
阅读全文
摘要:******** 【面向对象部分】********* ------抽象:private、protected、public、缺省,缺省问到的最多,缺省是对本包可见。------继承:JAVA单继承自Object类,JAVA怎么实现多继承(接口)。------多态:非常重要,问的最多,一定要搞清楚。********* 【J2SE部分】********* ------包lang:1、基础包装类,如Integer2、Object类,包括equals、hashcode、toString、clone3、JAVA GC,内存管理4、String和StringBuffer的区别,主要是看内存的存储结构5、多.
阅读全文