由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 问个google面试题
相关主题
问个面试题再问一道数组题
~~~~~~~~问个G家的题~~~~~~~~~~~Amazon 面试题
请问两道题彭博 面试题
问个amazon面试题说一道关于unbalanced树的面试题 (转载)
amazon一道面试题Amazon面试题请教
Facebook interview questions问个微软面试题
自己设计的一道面试题问个google面试题
面试题 finding missing value问一个面试题
相关话题的讨论汇总
话题: int话题: count话题: root话题: mergesort话题: node
进入JobHunting版参与讨论
1 (共1页)
B*******1
发帖数: 2454
1
Give an unsorted array find count of pairs of numbers[a,b] where a > b and b
comes after a in the array.
Eg. {8,3,6,10,5}
the count of such numbers is 5. i.e. (8,3), (8,6), (8,5), (6,5) and (10,5)
觉得这题跟amazon的这个很像,大家有没有这个感觉啊?
You have an array like ar[]= {1,3,2,4,5,4,2}. You need to create another
array ar_low[] such that ar_low[i] = number of elements lower than or equal
to ar[i] in ar[i+1:n-1].
So the output of above should be {0,2,1,2,2,1,0}
Time complexity : O(n)
use of extra space allowed.
m****t
发帖数: 555
2
就是这道题。只能 达到 O(nlgn)
http://stackoverflow.com/questions/3836767/interview-question-r

b
equal

【在 B*******1 的大作中提到】
: Give an unsorted array find count of pairs of numbers[a,b] where a > b and b
: comes after a in the array.
: Eg. {8,3,6,10,5}
: the count of such numbers is 5. i.e. (8,3), (8,6), (8,5), (6,5) and (10,5)
: 觉得这题跟amazon的这个很像,大家有没有这个感觉啊?
: You have an array like ar[]= {1,3,2,4,5,4,2}. You need to create another
: array ar_low[] such that ar_low[i] = number of elements lower than or equal
: to ar[i] in ar[i+1:n-1].
: So the output of above should be {0,2,1,2,2,1,0}
: Time complexity : O(n)

g**********y
发帖数: 14569
3
这个是求总和,比Amazon的简单。要是Amazon那个O(n)可解,这个也可以。但是这个有
O(n)解,不表明Amazon那个也有。

b
equal

【在 B*******1 的大作中提到】
: Give an unsorted array find count of pairs of numbers[a,b] where a > b and b
: comes after a in the array.
: Eg. {8,3,6,10,5}
: the count of such numbers is 5. i.e. (8,3), (8,6), (8,5), (6,5) and (10,5)
: 觉得这题跟amazon的这个很像,大家有没有这个感觉啊?
: You have an array like ar[]= {1,3,2,4,5,4,2}. You need to create another
: array ar_low[] such that ar_low[i] = number of elements lower than or equal
: to ar[i] in ar[i+1:n-1].
: So the output of above should be {0,2,1,2,2,1,0}
: Time complexity : O(n)

d*******d
发帖数: 2050
4
use a bst, each node contain an extra field which hold the number of nodes
in the tree.
h**6
发帖数: 4160
5
用二叉索引树很容易的吧。
d*******d
发帖数: 2050
6
不一样,但是差不多.
g**********y
发帖数: 14569
7
O(nlogn)不难,但是肯定没有O(n)的解吗?

【在 h**6 的大作中提到】
: 用二叉索引树很容易的吧。
r*******g
发帖数: 1335
8
hi
你们的思路是,对unsorted array做bst?然后呢?

【在 g**********y 的大作中提到】
: O(nlogn)不难,但是肯定没有O(n)的解吗?
g**********y
发帖数: 14569
9
CLRS习题2.4-d
public class InversionCount {
public int count(int[] a) {
return mergeSort(a, 0, a.length - 1);
}

private int mergeSort(int[] a, int p, int r) {
if (p >= r) return 0;
int q = (p + r) / 2;
int c1 = mergeSort(a, p, q);
int c2 = mergeSort(a, q+1, r);
return c1 + c2 + merge(a, p, q, r);
}

private int merge(int[] a, int p, int q, int r) {
int[] t = new int[r - p + 1];
int count = 0;

int i = p;
int j = q+1;
int k = 0;
while (i<=q && j<=r) {
if (a[i] <= a[j]) {
t[k++] = a[i++];
}
else {
t[k++] = a[j++];
count += q-i+1;
}
}

while (i<=q) t[k++] = a[i++];
while (j<=r) t[k++] = a[j++];

for (i=p; i<=r; i++) a[i] = t[i-p];
return count;
}
}

【在 r*******g 的大作中提到】
: hi
: 你们的思路是,对unsorted array做bst?然后呢?

s***f
发帖数: 226
10
一个unsorted array建立BST的worst time complexity是O(n^2)吧?
相关主题
Facebook interview questions再问一道数组题
自己设计的一道面试题Amazon 面试题
面试题 finding missing value彭博 面试题
进入JobHunting版参与讨论
g**********y
发帖数: 14569
11
hans说的应该是B-tree, 不是bst.

【在 s***f 的大作中提到】
: 一个unsorted array建立BST的worst time complexity是O(n^2)吧?
r*******g
发帖数: 1335
12
man,我是想问思路啊,你给我的是mergesort的实现。
mergesort和这个题什么关系?

【在 g**********y 的大作中提到】
: CLRS习题2.4-d
: public class InversionCount {
: public int count(int[] a) {
: return mergeSort(a, 0, a.length - 1);
: }
:
: private int mergeSort(int[] a, int p, int r) {
: if (p >= r) return 0;
: int q = (p + r) / 2;
: int c1 = mergeSort(a, p, q);

g**********y
发帖数: 14569
13
无语,你不能读读程序吗?如果不愿意读,你运行一下程序也行啊。

【在 r*******g 的大作中提到】
: man,我是想问思路啊,你给我的是mergesort的实现。
: mergesort和这个题什么关系?

r*******g
发帖数: 1335
14
哈哈,不好意思,刚才看的太不仔细了,你是对的,原来就是mergesort的时候不断求
和就行了,这个想法很好。thanks

【在 g**********y 的大作中提到】
: 无语,你不能读读程序吗?如果不愿意读,你运行一下程序也行啊。
d********y
发帖数: 2114
15
看了你的程序想起来以前做过这题。
可能是放在merge sort后面的练习里面的。
忘了可以这么做这个题了。

【在 g**********y 的大作中提到】
: 无语,你不能读读程序吗?如果不愿意读,你运行一下程序也行啊。
g*****i
发帖数: 2162
16
bst怎么做? unbalance bst的话10和5在两个不同的tree里,怎么找到这对pair?

【在 d*******d 的大作中提到】
: use a bst, each node contain an extra field which hold the number of nodes
: in the tree.

d*******d
发帖数: 2050
17
struct Node{
int v;
int count;
Node * left;
Node * right;
Node(int _v):v(_v), count(1), left(0), right(0){}
};
void insert(Node * & root, int v, int & c){
if( root == 0){
root = new Node(v);
return;
}
root->count++;
if( root->v == v){
if(root->right)
c = c + root->right->count;
}else if( v < root->v){
insert(root->left, v, c);
c = c + root->count - root->left->count;
}else{
insert(root->right, v, c);
}
return;
}
int find(int * a, int n){
Node * root = 0;
int c = 0;
for(int i = 0; i< n; i++){
insert( root, a[i], c);
}
return c;
}

【在 g*****i 的大作中提到】
: bst怎么做? unbalance bst的话10和5在两个不同的tree里,怎么找到这对pair?
B*******1
发帖数: 2454
18
这个worse case 还是o(n2)吧?
l****s
发帖数: 165
19
google jobs:
http://jobguiding.com/it-jobs/it-companies/google.html

b
equal

【在 B*******1 的大作中提到】
: Give an unsorted array find count of pairs of numbers[a,b] where a > b and b
: comes after a in the array.
: Eg. {8,3,6,10,5}
: the count of such numbers is 5. i.e. (8,3), (8,6), (8,5), (6,5) and (10,5)
: 觉得这题跟amazon的这个很像,大家有没有这个感觉啊?
: You have an array like ar[]= {1,3,2,4,5,4,2}. You need to create another
: array ar_low[] such that ar_low[i] = number of elements lower than or equal
: to ar[i] in ar[i+1:n-1].
: So the output of above should be {0,2,1,2,2,1,0}
: Time complexity : O(n)

1 (共1页)
进入JobHunting版参与讨论
相关主题
问一个面试题amazon一道面试题
一道G家题目的思路Facebook interview questions
面试题自己设计的一道面试题
一道微软面试题面试题 finding missing value
问个面试题再问一道数组题
~~~~~~~~问个G家的题~~~~~~~~~~~Amazon 面试题
请问两道题彭博 面试题
问个amazon面试题说一道关于unbalanced树的面试题 (转载)
相关话题的讨论汇总
话题: int话题: count话题: root话题: mergesort话题: node