由买买提看人间百态

topics

全部话题 - 话题: hashmap
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
P********l
发帖数: 452
1
来自主题: JobHunting版 - gg面试题
我水平有限,在短时间里全面复习也来不及。回头再思考这道题的时候,觉得可以在回
答技巧上改进。我看过Java concurrency in practice前几章,后面的几章没来得及看
。(实际上考官提到了后几章的内容)
我觉得这样回答也许机会更大一些。
1. private ctor. (explain why)
2. static public getInstance(why? note that by convention, the name is
exactly "gentInstance")
3. auto boxing the Integer.
4. the class is defined as final (why?)
5. Map = new HashMap << simple hashmap.
重点是把自己有把握的全亮出来,但是没有同步。
如果问到同步,先解释自己对同步不熟。解释如果class没有escape的话,还是thread
safe的。加synchronized method。
如果对方穷追不舍,在用
j**l
发帖数: 2911
2
我和他说了hashtable那部分是伪代码性质。
数据结构概念中的hashmap和其它map一样存key/value的pair, hashtable可以只存key,
相当于key和value相同(hash函数计算存放位置)。这和一些具体语言如Java中定义的
具体数据结构hashmap/hashtable不太一样。你完全可以用C++自己写一个只存放key的
hashtable
对重复元素没有任何问题
比如对 2 3 5 3 4 3 5
找6,迭代到第二个3的时候就返回true
找7,迭代到第一个5的时候就返回true
c*****h
发帖数: 166
3
大概50分钟的样子 最后5分钟问他问题
我online test选的java, 不过电面上来也就是c/c++的东西
1. 自我介绍
2. static什么意思 怎么用
3. synchronize怎么用
4. Singleton, 什么时候用 什么是double checking(ft这里,我自己说出来了被他追
着打)
5. HashMap和TreeMap,search,insert, delete的复杂度, 有HashMap了为啥还要
TreeMap
6. Sql里面有哪些Join, inner join 和left join的区别 举实际例子
7. 给个dead lock的场景 怎么解决 semaphore和mutex lock区别
完全没有behavioral question, brain tease和project介绍
各位好运~
g**********y
发帖数: 14569
4
来自主题: JobHunting版 - Google的面经
radiochromatogram * suspensefulnesses = 289
public class WordProduct {
private final static String DIR = "src/test/resources/com/practice/
search";

public void search() {
int N = 30;
String content = FileHelper.readFile(DIR + "/WORD.LST");
String[] words = content.split("\n");
HashSet[] set = new HashSet[30];
HashMap map = new HashMap();

for (int i=0; i set[i] = ... 阅读全帖
H******7
发帖数: 1728
5
写算法(数组中统计每个数出现的次数,返回大于K的数,典型的用HASHMAP的题目)用
到HASHMAP,
算法写OK了。
面试官提出:内存不够,表有几十个G。如何处理。
我想:如果SPLIT了数组。先把每一个出现的次数统计,然后COMBINE。这样的效率有点
低下。怎么是最优解?针对这个情
形。谢谢
S******n
发帖数: 1009
6
来自主题: JobHunting版 - 请教一道Google面试题
谢谢

hashmap+hashmap,具体看要求。版
R***i
发帖数: 78
7
来自主题: JobHunting版 - 亚麻面经
My solution:
Read line by line, if 3 consecutive lines with same user are found, push
(user, frequency + 1)to hashmap. At the end of day, sort the hashmap with
a heap.
Welcome to comment. Thanks.
g***s
发帖数: 3811
8
来自主题: JobHunting版 - 微软面试的一道题
Mark nodes from leaves(height from 0) based on left/right node. and put
into hashmap.
hashmap : (left_node_marked_value,right_node_marked_value) ->
marked_value
marked_value = 0 ;
if ( (left_node.marked_value,right_node.marked_value) is not in the map)
{
map[(left_node_marked_value,right_node_marked_value)] =
marked_value++;
}
current_node.marled_value =
map[(left_node_marked_value,right_node_marked_value);
BTW:
A subtree of a tree T is a tree consisting of a node in T and all of its
descen... 阅读全帖
g*****x
发帖数: 799
9
来自主题: JobHunting版 - A公司面挂了,发面经,攒RP
PHONE 1:
1. how to print a string backward
2. write code to find common elements in two arrays (2 pointers or hashtable)
3. ways to find pairs of elements that has specific sum
4. describe java gc, diff between strong and weak references
5. OOD for hotel reservation sys
6. two servers and one DB, how to improve performance
PHONE 2:
1. write code to find pairs of elements that has specific sum, e.g, 1, 1, 2,
3, 3, sum=4, return {{1, 3}, {1, 3}, {1, 3}, {1, 3}}
2. what if array very huge (millions... 阅读全帖
w**7
发帖数: 71
10
面试加州P公司
一面是华人GG
1. 给个数组,给个target, 求找两个数和等于target
然后拓展到找3个数,4个数,分析复杂度
这经典题,没啥说的,hashmap
一个金字塔,有n层,第i层有i个数,有点类似倒置的杨辉三角那种
让你找出一条路从塔顶到塔底,使得这条路链接的节点和最小
这个用hashmap存层数和路径长度值,从底层向上遍历
二面是个白人
2. 给个数组,没排序,已知数组中每个元素距离排序以后的位置最多是k,让你给这个
数组排序
这就是弄个k size 的min-maxheap, 然后先把前0-k-1个元素放到heap里,然后从数组K
位置开始,从heap中取出最小,然后从数组取一个放到heap里,最后O(nlogk)排好
我把方法一说,interviewer感觉可以,说那你写个code发过来吧,然后do you have
any questions。没20分钟就结束了
两面感觉都没啥问题,最后周一就收thank you letter了。有好几次都这样,感觉
technical 题目都没啥问题,两面就悲剧,求经验……move on到麻木了,唉
w**7
发帖数: 71
11
首先金字塔的形状大概是这样,有点像杨辉三角
L0: 1
L1: -1 3
L2: 3 2 4
L3: 5 6 7 8
也就是说第i层得第j个元素的child节点是i+1层得第j个和j+1个
hashmap key: <层数,序列号> 比如表示第i层的第j个
value表示从这个节点到底部路径上所有节点的value最大值
对于上面的例子:
开始处理最后一层
(<3, 0>, 5) (<3,1>, 6) (<3,2>, 7) (<3,3>, 8)
然后是L2:
处理<2,0>时,看他的child节点<3,0>,<3,1>取value最大的,6,然后加上自己的3
(<2,0>,9),同样<2,1>看<3,1> <3,2>取value最大的7,加上自己的2(<2,1>, 9)
(<2,2>, 12)
然后处理L1:

最后更新到L0,L0的value就是从L0到底部的路径最大值
这其实也是DP,用数组也可以,只是当时觉得三角形里用数组会浪费好多空间,直接
hashmap就是O(n)space
w*****3
发帖数: 101
12
来自主题: JobHunting版 - 问个google面试题
有负值
HashMap map = new HashMap();
/*
* find the maximum pair
*/
public int solve( btn root){
if(root == null) return 0;
int res = maxValue(root.left) +maxValue(root.right);
res = Math.max(res, solve(root.left));
res = Math.max(res, solve(root.right));
return res;
}
/*
* find the bigest value path from root to the node
*/
public int maxValue( btn root){
if( root == null) return 0;... 阅读全帖
p*******l
发帖数: 67
13
来自主题: JobHunting版 - LinkedIn电面
I am sorry I cant type Chinese at the moment.
I was using Java during the interview. They don't really care which language
you want to use. For the O(1)/O(n) solution, I used HashMap. For the O(n)/O
(1) solution, I used HashMap as well, but actually, HashSet would be good
enough.
Thanks a lot for the bless. You guys are sweet <3 I got the onsite
invitation two days after the phone interview. Didn't get time to update the
post here. I will update my onsite experience once it's done :)
S******1
发帖数: 269
14
来自主题: JobHunting版 - 请问如何准备多线程问题
Don't know about versioning and atomic variable......
If you are using java, Hashmap is not thread safte while Hashtale is thread
safe.
But if you don't need to take thread into consideration, Hashmap is always
better.
d*******l
发帖数: 338
15
来自主题: JobHunting版 - G题讨论
C++里不是没有标准的hash_map实现吗,想成hashmap就行。
至于你后面的分析我就看不懂了,如果你说的是数据结构的问题,那存n个元素的
hashmap可以做到O(n)空间,插入删除查找都是O(1)(期望,平摊),这点我挺确定的
。所以不妨把每一次访问map都看作是访问数组,就是O(1)。这样的话平均每个元素访
问map的次数不超过3次,就是O(n)的啊

也不是O(n), 这个要看map access
就是O(1)。所以你在不停的判断
range)了. hash_map有同样的问题。
access m(m>>n)个值的工具。
d*******l
发帖数: 338
16
来自主题: JobHunting版 - G题讨论
额,前面说了C++标准库没有hashmap的实现所以就用map了,想成hashmap就行了。方法
都是一样的。
d*******l
发帖数: 338
17
来自主题: JobHunting版 - G题讨论
C++里不是没有标准的hash_map实现吗,想成hashmap就行。
至于你后面的分析我就看不懂了,如果你说的是数据结构的问题,那存n个元素的
hashmap可以做到O(n)空间,插入删除查找都是O(1)(期望,平摊),这点我挺确定的
。所以不妨把每一次访问map都看作是访问数组,就是O(1)。这样的话平均每个元素访
问map的次数不超过3次,就是O(n)的啊

也不是O(n), 这个要看map access
就是O(1)。所以你在不停的判断
range)了. hash_map有同样的问题。
access m(m>>n)个值的工具。
d*******l
发帖数: 338
18
来自主题: JobHunting版 - G题讨论
额,前面说了C++标准库没有hashmap的实现所以就用map了,想成hashmap就行了。方法
都是一样的。
n*******w
发帖数: 687
19
来自主题: JobHunting版 - G题讨论
跑了随机1000个元素的例子,取值范围为0-99。结果不对。
问题可能在于,得到一个sequence在hashmap里会残留下一些entry,导致接下来处理重
复元素出错。
比如残留的entry里有两个sequence [0 10] [6 12]。hashmap里会存在4个entry [0,11
] [10, 11] [6,7] [12 7]。如果下一个元素是11。合并两个sequence,得到长度为19
的sequence。其实不存在。
问题在于[12,7]是以12结尾的长度为7的序列。而以后访问的时候并不知道,把它当做
12开始长度为7的序列。而残留的entry里有很多这样的sequence,导致整个结果不对。
g**********y
发帖数: 14569
20
来自主题: JobHunting版 - 尘埃落定(MGF的面试总结)
赞!
试试G的题:
1. 二分找左右边界。
2. 常见题
3. 用一个collector收集结果,最底层的function:
isOverlapping(Rectangle a, Rectangle b)
collectCommon(ArrayList collector, Rectangle a, Rectangle b)
递归比较子节点,如果overlap, 进一步比较子节点,直到叶子,最后计算结果存入
collector。
4. 5.
6. DP
7. DFS
8. 计算P(i) = score(i)/sum(score[1..n]), 然后随机生成
9. 这个写起来最繁,45分钟内把头绪理清楚而且写清楚,我觉得很难,这是个大致框
架:
public class FindVertex {
ArrayList findVertices(Rectangle[] r) {
ArrayList collector = new ArrayList();
HashMap阅读全帖
T*********C
发帖数: 110
21
来自主题: JobHunting版 - 点评网站Y面经
第一个电话面试,用的Skype。
上来先问了Projects
然后问了各方面的小问题:
1. 浏览器中打入www.google.com,到你看到网页之间发生了什么。
2. 解释TCP/IP
3. HTTP包里面有什么
4. POST/GET区别
5. Unix系统下,怎么查找文本文件中的电话号码,(格式xxx-xxxx)。
6. 什么是pipe, 怎么相互通信的(比如,输入和输出的速度不一样时)。
7. 什么是inner join, outer join
8. 数据库Query很慢时,怎么办。
Coding
最开始说有两道coding题,前面聊的时间太长了,然后就一道了。
共享文档用的ietherpad
在log中查找top 10 url
def top_n_urls(url_list, n=10)
用自己熟悉的语言实现。
后面,我问问题。
感觉小公司问网络知识问的挺细的,你答上前面,他就接着问。
Coding的时候,先讨论的想怎么实现。讨论到HashMap+Sort。然后,我就开始想怎么用
java sort hashtable,有点慌。好在面试官没想让我做排序,他就开始问n很小的时... 阅读全帖
g**********y
发帖数: 14569
22
来自主题: JobHunting版 - 问个MSFT的题
这个题在本版问过,这是当时给的解,去考古一下吧
public class LongestRange {
public int[] longest(int[] a) {
int start = 0;
int maxLen = 0;

HashMap map = new HashMap();
for (int i=0; i int left = map.containsKey(a[i]-1)? map.get(a[i]-1) : 0;
int right = map.containsKey(a[i]+1)? map.get(a[i]+1) : 0;
int len = left + 1 + right;
map.put(a[i]-left, len);
map.put(a[i]+ri... 阅读全帖
g**********y
发帖数: 14569
23
来自主题: JobHunting版 - 问个MSFT的题
这个题在本版问过,这是当时给的解,去考古一下吧
public class LongestRange {
public int[] longest(int[] a) {
int start = 0;
int maxLen = 0;

HashMap map = new HashMap();
for (int i=0; i int left = map.containsKey(a[i]-1)? map.get(a[i]-1) : 0;
int right = map.containsKey(a[i]+1)? map.get(a[i]+1) : 0;
int len = left + 1 + right;
map.put(a[i]-left, len);
map.put(a[i]+ri... 阅读全帖
m*****k
发帖数: 731
24
来自主题: JobHunting版 - amazonLocal 组 面经
amazonLocal 组,
上上周3面的,本周2收到据信,攒人品,上面经。
印女,PM,
1. copy linked list with random link in each node. 我给的答案不是回家后
google到的那个big linklist then separate, 我让原node的random link point to
its clone。
这样也能达到要求但改变了原始link,她也没反对。
2. code IsBST,
我写了个递归,还需要看root结点是否大于left child's subtree max, 以及是否小于
right child's subtree min, 被她问到复杂度, 指出非最优,重新想了一会, 说那
就inorder traversal , 每次和前一个值比一下,先给一个Prev=-infinity, 在白板上
纠结了一阵写出了和http://www.mitbbs.com/article/JobHunting/31990685_3.html相似的code.不过我是把prev传入IsBST,而且用
prev = +infinit... 阅读全帖
a*****n
发帖数: 158
25
来自主题: JobHunting版 - A家电面面经兼求BLESS。。。
上周电面A家,一点体会,请大家指教一下。。。
说是一个钟头,结果对方晚了15分种,然后又留15分钟写CODE发EMAIL(可能我花
了45分钟,汗!!)。所以实际上只谈了半个钟头。
前面主要先谈了一下已经做过的项目,VIRTUAL,STATIC,PATTERN,C++等等。最后一
道题是设计电话本(PHONE BOOK)。。。也算老题目了。我看了一下版上有的朋友在面
世的过程答的很好,CODING也很快,但是最后FAIL了。我的一点猜想,(不知道是否正
确,请有面世机会的同学指点。)面世主要是考你是否有足够的软件基本知识,还有一
个是你是不是很SMART。现在网站啊书啊,把全真题目都拿出来,这当然对准备面世的
人很有利,但是对公司却不太好。他们也知道这个情况,他们就得拼命找新的试题,同
时旧的也还要用。如果你很快就能拿出很巧妙的算法,面世的人不免怀疑你是否熟悉这
个题目。譬如那个CLONE RANDOM指针的题目。。。
做这道题的时候我没有立即给出TRIE的数据结构。相反,我问他这个PHONE BOOK,你需
要什么样的功能,如果仅仅是根据名字查找号码的话,HASHMAP最好,所有的操... 阅读全帖
j********t
发帖数: 97
26
来自主题: JobHunting版 - Bloomberg面经(onsite)
我被问过两种case
1)按人名查找电话号码。
使用trie的话,lookup time O(n),n是名字长度和电话号码数无关。
如果用ordered map,也就是balanced BST的话,look up time log(N),N是电话号码数。
hashmap的话,不容易traverse alphabetically.
2)按号码显示人名
这个是不是可以用楼主讲的array based solution。10位号码的话,要很大的space。

又问了电话号码的问题,具体说是在弱手机上实现全名查找以及顺序浏览。说了
hashmap和trie。他们说太复杂了,我才说出他们想要的是linkedlist或者array based
的solution。
c*****r
发帖数: 108
27
来自主题: JobHunting版 - 电面犯二了
你这个方法是NlogN啊。 我当时听到这个题目的时候第一反应也这么跟他说了。然后
说完我就说还有更好的。就开始往自己的歪路上走了。
不过,如果是考虑树的形状的话,那么用in-order遍历两个树之后比较一下就好了,线
性时间。 但是我写到一半他叫我用hashmap。 不过最后的解法是hashmap记录元素出现
的次数,加加减减。 很常规的题目,拿上来见笑啦。
L***Q
发帖数: 508
28
来自主题: JobHunting版 - 讨论下找两个元素和为0的题延伸
Good idea
一个hashtable保存每两个数的和。另外要一个hashmap保存每个数在array里面出现的
次数。从hashtable里面找到2对之后,在hashmap里面check这4个数字出现的次数是否
valid。
S**I
发帖数: 15689
29
来自主题: JobHunting版 - [合集] 微软面试的一道题
☆─────────────────────────────────────☆
sugarbear (sugarbear) 于 (Thu Apr 7 00:42:48 2011, 美东) 提到:
找 二叉树 两个最大的相同子树
没答上来。
见了四个,被拒了。 第二个是manager,后来主动写信跟我联系,说把我推荐给industry recruiting team,不知道是不是有转机? 觉得industry recruiting应该更难吧? 求祝福!
☆─────────────────────────────────────☆
boohockey (Pursuit of Dreams!) 于 (Thu Apr 7 10:27:03 2011, 美东) 提到:
bless
这道题有没有正解

industry recruiting team,不知道是不是有转机? 觉得industry recruiting应该更
难吧? 求祝福!
☆─────────────────────────────────────☆
grass (美丽人生) 于 (Thu Apr... 阅读全帖
S**I
发帖数: 15689
30
☆─────────────────────────────────────☆
gzou (gzou) 于 (Thu May 12 02:26:35 2011, 美东) 提到:
马上就要G on site了,
求祝福。
下面是从本版收集到的Google的试题,便于大家查询。
申明:有的附带有解释说明的,也来自于本版或者网络,大家自己看, 不保证真确
http://www.mitbbs.com/article_t1/JobHunting/31847453_0_1.html
本人ECE fresh PhD,背景是电路/EDA,跟G业务基本没什么关系
同学内部推荐的,很简单的一次电面就给了onsite
题都不难,但是自己没把握好机会,出了一些小bug。
总的感觉,出错就是硬伤,宁可从最简单的算法写起,也不能出错。
电面:
1,Skip list, http://en.wikipedia.org/wiki/Skip_list
写code实现struct skip_list * find(struct skip_list *head, int value)
2,sorted array... 阅读全帖
S**I
发帖数: 15689
31
☆─────────────────────────────────────☆
gzou (gzou) 于 (Thu May 12 02:26:35 2011, 美东) 提到:
马上就要G on site了,
求祝福。
下面是从本版收集到的Google的试题,便于大家查询。
申明:有的附带有解释说明的,也来自于本版或者网络,大家自己看, 不保证真确
http://www.mitbbs.com/article_t1/JobHunting/31847453_0_1.html
本人ECE fresh PhD,背景是电路/EDA,跟G业务基本没什么关系
同学内部推荐的,很简单的一次电面就给了onsite
题都不难,但是自己没把握好机会,出了一些小bug。
总的感觉,出错就是硬伤,宁可从最简单的算法写起,也不能出错。
电面:
1,Skip list, http://en.wikipedia.org/wiki/Skip_list
写code实现struct skip_list * find(struct skip_list *head, int value)
2,sorted array... 阅读全帖
H***e
发帖数: 476
32
来自主题: JobHunting版 - 文件可以随机读哪一行吗?
有个超大文件,每行存一个string,要求去除重复,如果直接hash行string的话,放不
进内存
如果存 md5(string)做为 key 存进hashmap,有可能存下,但是有可能不同string重复
key,我在想,
我可以把hashmap 的value用来存此string在原文件中的行数,那么重复的时候,可以
去原文件,看一下,是不是真的重复
只是这样如果不能直接读某行string的话,sequential的读花费就太高了。
w**z
发帖数: 8232
33
It doesn't matter what you put in this case. You can use HashSet, you don't
care about the value, you only care the existence of the key.
Java Hashset internally is backed by a hashmap, it stores the "this" as
value.
/**
* Adds the specified object to this HashSet.
*
* @param object
* the object to add
* @return true when this HashSet did not already contain the object,
false
* otherwise
*/
@Override
public boolean add(E object) {
... 阅读全帖
w*********0
发帖数: 48
34
来自主题: JobHunting版 - longest valid Parentheses有O(n)算法么
O(n)
import java.util.*;
public class Solution {
public int longestValidParentheses(String s) {
// Start typing your Java solution below
// DO NOT write main() function
if (s == null || s.length() == 0) return 0;
ArrayList pos = new ArrayList();
HashMap pair = new HashMap();
int len = s.length();
int max = 0;
for (int i = 0; i < len; i++) {
if (s.charAt(i) == '(')... 阅读全帖
w*********0
发帖数: 48
35
来自主题: JobHunting版 - longest valid Parentheses有O(n)算法么
O(n)
import java.util.*;
public class Solution {
public int longestValidParentheses(String s) {
// Start typing your Java solution below
// DO NOT write main() function
if (s == null || s.length() == 0) return 0;
ArrayList pos = new ArrayList();
HashMap pair = new HashMap();
int len = s.length();
int max = 0;
for (int i = 0; i < len; i++) {
if (s.charAt(i) == '(')... 阅读全帖
p*****2
发帖数: 21240
36
来自主题: JobHunting版 - onsite后收到A家的拒信,面经。

第一题写了一下,还不算容易。刚开始题目理解错了。
HashSet hs = new HashSet();
HashMap hm = new HashMap();
HashSet visited = new HashSet();
boolean Change(String a, String b)
{
visited.add(a);
if (a.equals(b))
return true;
if (hm.containsKey(a))
return hm.get(a);
char[] arr = a.toCharArray();
for (int i = 0; i < arr.length; i++)
{
if (arr[i] != b.charAt... 阅读全帖
p*****2
发帖数: 21240
37
来自主题: JobHunting版 - onsite后收到A家的拒信,面经。

第一题写了一下,还不算容易。刚开始题目理解错了。
HashSet hs = new HashSet();
HashMap hm = new HashMap();
HashSet visited = new HashSet();
boolean Change(String a, String b)
{
visited.add(a);
if (a.equals(b))
return true;
if (hm.containsKey(a))
return hm.get(a);
char[] arr = a.toCharArray();
for (int i = 0; i < arr.length; i++)
{
if (arr[i] != b.charAt... 阅读全帖
p*****2
发帖数: 21240
38
来自主题: JobHunting版 - 罗马数字转换成十进制
import java.io.*;
import java.util.*;
public class Roman
{
public static void main(String[] args)
{
new Roman().run();
}
PrintWriter out = null;
void run()
{
Scanner in = new Scanner(System.in);
out = new PrintWriter(System.out);
String s = in.next();
out.println(romanToInt(s));
out.close();
}
public String intToRoman(int num)
{
StringBuffer sb = new StringBuffer();
sb.append(Convert(num, 1000, ne... 阅读全帖
e***n
发帖数: 42
39
第一遍扫描array用hashmap存array[i],
第二遍扫描找出hashmap(target - array[i])
但是如果遇到重复多次的数(如下例程 x=5)且x+x=target=10, C++ 的hashtable (
map) 就只存第一次出现的x 请问有什么办法解决?
#include
#include
#define N 12
using namespace std;
void find2SumTarget(int arr[N], int target){
map hashT;
int i;
map::iterator m;
for (i=0; i hashT.insert(make_pair(arr[i], i));
}
for (i=0; i m = hashT.find(target - arr[i]);
if ( m!=hashT.end() && i!=... 阅读全帖
z****e
发帖数: 54598
40
这两个都是core java的问题
跟j2ee没啥太大关系,但是也能说完全没有关系,j2se也是整体的一部分
map接口下面由这三个类实现
hashtable
concurrenthashmap
hashmap
第一个是synchronized,也就是说,当一个线程访问这个对象的时候
这个对象整体会被locked,不允许其它线程对其做任何操作,无论是读写还是神马的
第三个是完全不设防,任何线程在任何时间都可以做任何操作
但是这样在并发的时候有可能导致异常抛出
一个读同时另外一个写就会造成异常抛出
第三个太危险,第一个很安全,但是很浪费,因为一个大的map
你修改其中一个没有必要把其它所有的value全部给lock住不让别人访问
为了效率的提升,所以写出了这样一个类出来
简单说就是在hashmap的效率和hashtable的安全之间做了一个折中
尽最大可能提升了并发时候的效率并保证了安全
基本上所有concurrent包里面的实现类都是这个目的搞出来的
类似的还有copyonwritearraylist, copyonwritearrayset etc.
基本上这个包出来之后,什么has... 阅读全帖
p*****2
发帖数: 21240
41

随便写了一个,不过没 怎么调呀。大概这个意思。
HashMap hm = new HashMap();
int isValid(char[] arr)
{
Stack stack = new Stack();
for (int i = 0; i < arr.length; i++)
{
if (arr[i] == '(')
stack.push(i);
else if (arr[i] == ')')
{
if (stack.isEmpty())
return -1;
hm.put(stack.pop(), i);
}
}
if (!stack.is... 阅读全帖
p*****2
发帖数: 21240
42
来自主题: JobHunting版 - request solutions to 2 questions on leetcode

);
哈哈。我写了一个。跟你几乎一模一样。
HashMap hm = new HashMap();
public boolean isScramble(String s1, String s2)
{
if (s1 == null || s2 == null)
return false;
if (s1.length() != s2.length())
return false;
if (s1.equals(s2))
return true;
String key1 = s1 + ":" + s2;
String key2 = s2 + ":" + s1;
if (hm.containsKey(key1))
return hm.get(key1);
if (hm.containsKey(key... 阅读全帖
p*****2
发帖数: 21240
43
来自主题: JobHunting版 - request solutions to 2 questions on leetcode

);
哈哈。我写了一个。跟你几乎一模一样。
HashMap hm = new HashMap();
public boolean isScramble(String s1, String s2)
{
if (s1 == null || s2 == null)
return false;
if (s1.length() != s2.length())
return false;
if (s1.equals(s2))
return true;
String key1 = s1 + ":" + s2;
String key2 = s2 + ":" + s1;
if (hm.containsKey(key1))
return hm.get(key1);
if (hm.containsKey(key... 阅读全帖
q*****n
发帖数: 311
44
来自主题: JobHunting版 - 话说今天面了一老印
简历不象写过多少代码,一见面自我介绍后让他简要介绍,这厮开始夸夸其谈,说其做
的东西如何如何牛逼,三四个产品都已经放到product,并准备了打印好得ppt图片给我
看,听起来没完没了,很细节,我不得不礼貌得差了一句问你写得这些代码,丫自信满
满说是,就问了一个递归的编程题,类似于spellchecker,就是用词典在一个没有空格
的句子中插入空格,使它变成合法的句子。
他一开始先说用贪婪法找到最长的匹配,然后停止接着找,经我提示发觉这法不对。
又说用后缀树,我提示说词典以给你,不用超心怎么实现,可以是hashset/map什么的。
他又开始说统计词典里的词的长度,找到平均长度,然后用这来决定什么时候停止。我
说如果词典的api不受你控制,或者又加了新词,怎么办?他说数据必须得有办法获得
。后来又回到贪心法,找最长的在词典中的匹配词。怎么提示实在没辙了,后来就说用
你的想法写代码吧,上来就没头没尾写了个
int len = strs.lenth
for (int i=0; i for (int j=0;j<..;j++) {
}
}
... 阅读全帖
g*****g
发帖数: 34805
45
来自主题: JobHunting版 - 话说今天面了一老印
楼主很厚道,这题不算难,又没要求多高效率,就是考coding,我来写。
void spacing(String prefix, String sen, HashMap dict) {
if(dict.get(sen)!=null) {
print((prefix + " " + sen).trim());
}
if(sen.length() <= 1) return;

for(int i = 1; i < sen.length(); i++) {

String word = sen.substring(0, i);
if(dict.get(word)!=null) {
spaceSentence(prefix + " " + word, sen.substring(i);
}
}
}
void spaceSentence(String sentence, HashMap dict) {
if(sentence =... 阅读全帖
q*****n
发帖数: 311
46
来自主题: JobHunting版 - 话说今天面了一老印
简历不象写过多少代码,一见面自我介绍后让他简要介绍,这厮开始夸夸其谈,说其做
的东西如何如何牛逼,三四个产品都已经放到product,并准备了打印好得ppt图片给我
看,听起来没完没了,很细节,我不得不礼貌得差了一句问你写得这些代码,丫自信满
满说是,就问了一个递归的编程题,类似于spellchecker,就是用词典在一个没有空格
的句子中插入空格,使它变成合法的句子。
他一开始先说用贪婪法找到最长的匹配,然后停止接着找,经我提示发觉这法不对。
又说用后缀树,我提示说词典以给你,不用超心怎么实现,可以是hashset/map什么的。
他又开始说统计词典里的词的长度,找到平均长度,然后用这来决定什么时候停止。我
说如果词典的api不受你控制,或者又加了新词,怎么办?他说数据必须得有办法获得
。后来又回到贪心法,找最长的在词典中的匹配词。怎么提示实在没辙了,后来就说用
你的想法写代码吧,上来就没头没尾写了个
int len = strs.lenth
for (int i=0; i for (int j=0;j<..;j++) {
}
}
... 阅读全帖
g*****g
发帖数: 34805
47
来自主题: JobHunting版 - 话说今天面了一老印
楼主很厚道,这题不算难,又没要求多高效率,就是考coding,我来写。
void spacing(String prefix, String sen, HashMap dict) {
if(dict.get(sen)!=null) {
print((prefix + " " + sen).trim());
}
if(sen.length() <= 1) return;

for(int i = 1; i < sen.length(); i++) {

String word = sen.substring(0, i);
if(dict.get(word)!=null) {
spaceSentence(prefix + " " + word, sen.substring(i);
}
}
}
void spaceSentence(String sentence, HashMap dict) {
if(sentence =... 阅读全帖
p*g
发帖数: 141
48
来自主题: JobHunting版 - 最近找工的一点总结
HashMap map = new HashMap();
for (int n : a) {
Interval left = map.get(n - 1);
Interval right = map.get(n + 1);
if (left == null && right == null) {
map.put(n, new Interval(n));
} else if (left != null && right != null) {
int min = Math.min(left.left, right.left);
int max = Math.max(right.right, left.right);
Interval in = new Interval(min, ... 阅读全帖
b*******d
发帖数: 750
49
来自主题: JobHunting版 - 多线程有什么好的复习建议么?
最近有道多线程的题答得不好,大家看看有没有什么好的思路,或者有链接可以share
一下看看?:
(lockless concurrency)
一个分布式hash table(MemCache的意思),多个worker,每个上边有一段hash key
range,另外加一个load balancer 和 persistence用的mysql DB。
其中两台机器对某个cache有读写操作,找出可能产生不一致的一个执行序列,比如:
DB中的资源是一个表C,thread A和B 都在添加entries到表C中去。
cache的key,value是这样的:
每个thread向表中添加entry后,要update对应的cache kv:
{
...
addEntrySQL(c);
kv = readCountSQL(c);
updateMemCache(kv);
...
}
找到一个使结果不consistent的执行序列,如:
kv: .
A_addEntrySQL... 阅读全帖
g*******n
发帖数: 214
50
来自主题: JobHunting版 - G电面一题
如果不用recursion的话代码太长是不是面试的时候不能用?
public ArrayList numString2Char(String num) {
//map to store all the previous possibilities
HashMap> map = new HashMap ArrayList>();
int[] numbers = new int[num.length()];
for (int i = 0; i < num.length(); i++) {
numbers[i] = Integer.parseInt(num.charAt(i) + "");
}
if(numbers[0]==0) return null;
ArrayList tempList;
... 阅读全帖
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)