自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 200层高的大楼,两个鸡蛋,如果在N扔下不碎的话,那么N-1之下都不碎。在最坏的情况下怎么用两个鸡蛋试出会碎掉的楼层

一般的思路是200层高的话,一般将楼层分成两部分,200开根号是14.X, 也就是15,那么每隔15层的时候,扔一个鸡蛋,然后碎了之后从上一个15层的时候开始向上累加,总共最多可能扔下的次数是15 + 15 = 30次。但是这种情况下实际上没有最优化均摊鸡蛋碎掉的楼层数目,假设第一次仍在x楼,那么第二次实际上应该仍在X + X - 1楼,这样可以扔的第一次带来的次数累积情况,通过第二个鸡蛋来弥

2016-09-14 16:32:29 2164

原创 利用Trie树,来查找单词出现的次数

Trie节点class TrieNode { TrieNode nodes[]; boolean isSentence; //称为一个句子的话仍然可能会有子节点 int count; //表示当前节点实际上代表了多少个相同的单词 public TrieNode() { nodes = new TrieNode[26]; //26个英文字母

2016-09-13 16:24:06 1615

原创 洪水问题

在一个nxm矩阵形状的城市里爆发了洪水,洪水从(0,0)的格子流到这个城市,在这个矩阵中有的格子有一些建筑,洪水只能在没有建筑的格子流动。请返回洪水流到(n - 1,m - 1)的最早时间(洪水只能从一个格子流到其相邻的格子且洪水单位时间能从一个格子流到相邻格子)。给定一个矩阵map表示城市,其中map[i][j]表示坐标为(i,j)的格子,值为1代表该格子有建筑,0代表没有建筑。同时给定矩阵的大

2016-09-10 18:49:50 834

原创 JUC框架部分小结

ConcurrentHashMap:底层结构和HashMap是相同的。继承自ConcurrentMap,AbstractMap以及序列化接口内部类主要有Node类以及Traverser类,CollectionView类。Node用于存储键值对,有子类ForwardingNode以及TreeBin类,ReservationNode类以及TreeBin类。Traverser类主要用于遍历操作。Coll

2016-09-08 10:21:28 2422

原创 java去除注释

将形如/**/已经//的注释都去掉,代码如下:这是别人写的,只是拿过来参考下package removeNotes;/** * Created by 12083 on 2016/9/7. */import java.io.BufferedReader;import java.io.FileInputStream;import java.io.IOException;import jav

2016-09-07 22:47:03 4163 1

原创 SQL小结

SQL 常用语句积累: 一、 SQL 基本语句 SQL 分类: DDL —数据定义语言 (Create , Alter , Drop , DECLARE) DML —数据操纵语言 (Select , Delete , Update , Insert) DCL —数据控制语言 (GRANT , REVOKE , COMMIT , ROLLBACK)首先 , 简要介绍基础语句: 1 、说明:

2016-09-05 10:06:59 486

原创 Hibernate的一级缓存以及二级缓存

Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,这一级别的缓存由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存,这一级别的缓存可以进行配置和更改,并且可以动态加载和卸载。 Hibernate还为查询结果提供了一个查询缓存,它依赖于第二级缓存。一级缓存和二级缓存的要点配置

2016-09-01 22:53:37 292

原创 子串判断

难题,先mark: leetcode之word ladder

2016-09-01 16:33:23 439

原创 最长合成字符串

有一组单词,请编写一个程序,在数组中找出由数组中字符串组成的最长的串A,即A是由其它单词组成的(可重复)最长的单词。给定一个string数组str,同时给定数组的大小n。请返回最长单词的长度,保证题意所述的最长单词存在。测试样例:[“a”,”b”,”c”,”ab”,”bc”,”abc”],6,返回:3,因为abc可以由其他的字符串组成,/*先按字符串长度排个序哦,然后从长度最长的开始判断是否是

2016-09-01 16:27:34 628

原创 单词的最近距离

有一篇文章内含多个单词,现给定两个单词,请设计一个高效算法,找出文中这两个单词的最短距离(即最少相隔的单词数,也就是两个单词在文章中位置的差的绝对值)。给定一个string数组article,代表所给文章,同时给定文章的单词数n和待查找的两个单词x和y。请返回两个单词的最短距离。保证两个单词均在文中出现且不相同,同时保证文章单词数小于等于1000。代码如下public class Distan

2016-09-01 16:19:26 1042

原创 下一个较大元素

现在我们有一个int数组,请你找出数组中每个元素的下一个比它大的元素。给定一个int数组A及数组的大小n,请返回一个int数组,代表每个元素比他大的下一个元素,若不存在则为-1。保证数组中元素均为正整数。测试样例:[11,13,10,5,12,21,3],7 返回:[13,21,12,12,21,-1,-1]/*从后向前维护一个递减栈。最右边的那个值肯定没有最大值,所以肯定是-1。初始栈为-

2016-09-01 16:01:53 990

原创 2的个数

请编写一个方法,输出0到n(包括n)中数字2出现了几次。给定一个正整数n,请返回0到n的数字中2出现了几次。测试样例:10 返回:1/*需要优化进行求解,我们可以计算各个位置的2数字的个数;例如:xxxx2 仅仅是个位数字是2的情况 2的高位是0~1999 所以2000*1 2的后面没有低位同理 计算百位为2的情况:12209 当百位是2的时候,还是有200-299,1200-1299,

2016-09-01 15:12:23 619

原创 词频统计

请设计一个高效的方法,找出任意指定单词在一篇文章中的出现频数。给定一个string数组article和数组大小n及一个待统计单词word,请返回该单词在文章中的出现频数。保证文章的词数小于等于1000。//可以直接使用STL的countclass Frequency {public: int getFrequency(vector<string> article, int n, str

2016-09-01 14:48:23 613

原创 数字发音

有一个非负整数,请编写一个算法,打印该整数的英文描述。 给定一个int x,请返回一个string,为该整数的英文描述。测试样例: 1234 返回:”One Thousand,Two Hundred Thirty Four”private string[] belowTen = new String[] {"", "One", "Two", "Three", "Four", "Five",

2016-09-01 14:41:24 437

原创 最小调整有序

有一个整数数组,请编写一个函数,找出索引m和n,只要将m和n之间的元素排好序,整个数组就是有序的。注意:n-m应该越小越好,也就是说,找出符合条件的最短序列。 给定一个int数组A和数组的大小n,请返回一个二元组,代表所求序列的起点和终点。(原序列位置从0开始标号,若原序列有序,返回[0,0])。保证A中元素均为正整数。测试样例:[1,4,6,5,9,10],6 返回:[2,3]/*进行两

2016-09-01 14:38:53 506

原创 珠玑妙算

我们现在有四个槽,每个槽放一个球,颜色可能是红色(R)、黄色(Y)、绿色(G)或蓝色(B)。例如,可能的情况为RGGB(槽1为红色,槽2、3为绿色,槽4为蓝色),作为玩家,你需要试图猜出颜色的组合。比如,你可能猜YRGB。要是你猜对了某个槽的颜色,则算一次“猜中”。要是只是猜对了颜色但槽位猜错了,则算一次“伪猜中”。注意,“猜中”不能算入“伪猜中”。 给定两个string A和guess。分别表示

2016-09-01 14:29:54 2099

原创 无判断max

请编写一个方法,找出两个数字中最大的那个。条件是不得使用if-else等比较和判断运算符。 给定两个int a和b,请返回较大的一个数。若两数相同则返回任意一个。测试样例: 1,2 , 返回:2public int getMax(int a ,int b){ b = a-b;//此时b>>31为1则b小于0即a<b,若b>>31为0 则a>b a- = b&(b>>31); /

2016-09-01 14:00:23 458

原创 维护x的秩

现在我们要读入一串数,同时要求在读入每个数的时候算出它的秩,即在当前数组中小于等于它的数的个数(不包括它自身),请设计一个高效的数据结构和算法来实现这个功能。 给定一个int数组A,同时给定它的大小n,请返回一个int数组,元素为每次加入的数的秩。保证数组大小小于等于5000。测试样例: [1,2,3,4,5,6,7],7 返回:[0,1,2,3,4,5,6]简单的方法可以像下面这样做:

2016-09-01 12:35:00 781

原创 找出字符串

有一个排过序的字符串数组,但是其中有插入了一些空字符串,请设计一个算法,找出给定字符串的位置。算法的查找部分的复杂度应该为log级别。 给定一个string数组str,同时给定数组大小n和需要查找的string x,请返回该串的位置(位置从零开始)。测试样例:[“a”,”b”,”“,”c”,”“,”d”],6,”c”, 返回:3class Finder {public: int

2016-09-01 12:11:27 324

原创 元素查找

有一个排过序的数组,包含n个整数,但是这个数组向左进行了一定长度的移位,例如,原数组为[1,2,3,4,5,6],向左移位5个位置即变成了[6,1,2,3,4,5],现在对于移位后的数组,需要查找某个元素的位置。请设计一个复杂度为log级别的算法完成这个任务。给定一个int数组A,为移位后的数组,同时给定数组大小n和需要查找的元素的值x,请返回x的位置(位置从零开始)。保证数组中元素互异。测试样

2016-09-01 11:00:13 384

原创 变位词排序

请编写一个方法,对一个字符串数组进行排序,将所有变位词合并,保留其字典序最小的一个串。这里的变位词指变换其字母顺序所构成的新的词或短语。例如”triangle”和”integral”就是变位词。 给定一个string的数组str和数组大小int n,请返回排序合并后的数组。保证字符串串长小于等于20,数组大小小于等于300。测试样例:[“ab”,”ba”,”abc”,”cba”], 返回:[“

2016-09-01 10:13:56 329

原创 堆箱子问题

有一堆箱子,每个箱子宽为wi,长为di,高为hi,现在需要将箱子都堆起来,而且为了使堆起来的箱子不到,上面的箱子的宽度和长度必须小于下面的箱子。请实现一个方法,求出能堆出的最高的高度,这里的高度即堆起来的所有箱子的高度之和。给定三个int数组w,l,h,分别表示每个箱子宽、长和高,同时给定箱子的数目n。请返回能堆成的最高的高度。保证n小于等于500。测试样例:[1,1,1],[1,1,1],[1

2016-09-01 09:59:22 2328

空空如也

空空如也

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

TA关注的人

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