一个数组,数组元素含有3种颜色,红,白,蓝。要求将数组排序,将相同颜色排在一起,整体按照红白蓝的顺序。
这个题在日常生活中很常见。比如要将东西归类,当然这个题简化成了相同颜色就认为完全相同。
基于这个特点,可以先统计各个颜色出现的次数,然后在按照题目要求的红白蓝的顺序,依次放n个红,m个白,k个蓝,就Okay了,代码详见代码一。这个思路也就是题目下面提示的方法,这个方法需遍历2次数组,本题要求遍历一次就搞定的方法,想想这个还是有点难度的。
这个题目其实我们很容易就能联想到快排的划分上来,但是仔细一想,如果按...
分类:
其他好文 时间:
2014-06-10 15:56:14
阅读次数:
223
探秘Java中String、StringBuilder以及StringBuffer
相信String这个类是Java中使用得最频繁的类之一,并且又是各大公司面试喜欢问到的地方,今天就来和大家一起学习一下String、StringBuilder和StringBuffer这几个类,分析它们的异同点以及....
分类:
编程语言 时间:
2014-06-10 08:38:26
阅读次数:
330
字符串转换整数: 虽然有类似的Integer.parseInt(),但是笔试面试明显不会如此:
转字符串可以考虑为: 1、单个字符的转换 2、权值 如:从前往后依次扫描,则每次扫描一个字符 前面数值*10; 如345,扫描3,再3*10+4,再...
分类:
编程语言 时间:
2014-06-09 17:21:02
阅读次数:
228
有一道这种面试题:开启一个子线程和主线程同一时候运行,子线程输出10次后接着主线程输出100次,如此重复50次。先看以下代码:package
com.maso.test;/** * * @author Administrator *
两个线程,当中是一个主线程,第一个线程先运行输出10次,主线程接....
分类:
移动开发 时间:
2014-06-09 17:17:43
阅读次数:
310
在HTML元素中,要隐藏元素有两个标签:display:none;//元素隐藏后,会脱离文档流,让出元素位置给其他元素标签visibility:hidden;//元素隐藏,不会脱离文档流,其位置保留
分类:
Web程序 时间:
2014-06-09 14:58:39
阅读次数:
266
在面试,笔试的过程中经常会遇到面试官问这种问题,实现单链表的倒置方法。现在对单链表的倒置犯法做个记录,方便自己以后查看。单链表的定义: 1 public
class Node { 2 3 int v; 4 Node next; 5 public Node(){ ...
分类:
编程语言 时间:
2014-06-08 22:22:59
阅读次数:
352
求两个排序数组的中位数。这个题可以有以下几个思路:
首先可以想到的是将两个数组merge起来,然后返回其中位数。
第二个是,类似merge的思想加上计数,找到(m+n)/2个数或者其前后的数,这个就可以算出中位数。这个方法对于各种情况需要一一考虑到。
第三个,假设A[k/2-1]<B[k/2-1],那么A[k/2-1]之前的数一定在整个有序数列中(m+n)/2之前。
这里我给出后面两种思路的代码。
代码一( 思路三)...
分类:
其他好文 时间:
2014-06-08 03:44:47
阅读次数:
231
字符串匹配这也是个老题了,方法主要有下面4种,
1. 暴利破解法(BF),这个没啥说的,就是一轮一轮的比较,知道遇到相匹配的,这个的时间复杂度为O(n^2)。
2. KMP,这应该是字符串匹配领域中最长听说的算法了吧。
3. Horspool算法,这个不常听说,但是也是很有名的。
4. Boyer-Moore,这个听说过的人应该也不会很多,这个算法在大量字符串的情况下,效率是最高的,能达到kmp的3到4倍。
上面四种算法都很重要,一般标准库中的字符串匹配都使用的是暴力法。
上面四种算法详细的见我下面的这几篇...
分类:
其他好文 时间:
2014-06-08 03:19:54
阅读次数:
187
题目:Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for "abcabcbb" is "abc", which the length is 3. For "bbbbb" the longest substring is "b", with the length...
分类:
其他好文 时间:
2014-06-08 03:06:52
阅读次数:
221
题目 :Input: numbers={2, 7, 11, 15}, target=9
Output: index1=1, index2=2
解题思路:
给出一个数组合一个数,如果两个数的和等于所给的数,求出该两个数所在数组中的位置。
这个题也挺常见的,就是两个指针,从前后两个方向扫描。但是本题有以下几个需要的点:
1. 所给数组不是有序的;
2. 返回的下标是从1开始的,并且是原来无序数组中的下标;
3. 输入数组中可能含有重复的元素。
好了,把以上三点想到的话,做这个题应该不会有啥问题。
具体方法:把原...
分类:
其他好文 时间:
2014-06-08 02:14:06
阅读次数:
250