x*****0 发帖数: 452 | 1 有一些不理解第二题的意思:
请问你:
输入:[5, 4, 3, 2, 2, 1]
输出是:6吗? |
|
f*****e 发帖数: 2992 | 2 第二题怎么用xor做?O(N)时间复杂度倒是可以。 |
|
r********7 发帖数: 102 | 3 谢了,第二题有没有 其他方法啊。 我跟面试官说的用xor运算,但是他说一个integer
最多32位,要是有32位以上的长度就不行了。 问有没有其他方法。 |
|
x*****0 发帖数: 452 | 4 有一些不理解第二题的意思:
请问你:
输入:[5, 4, 3, 2, 2, 1]
输出是:6吗? |
|
y*****3 发帖数: 451 | 5 求问LZ,第二题的delete哪里有标准code?我在网上找了一个,但貌似是错的。。。请
给个link吧,谢谢啦! |
|
x*********1 发帖数: 23 | 6 我写了一个,大家帮看看, 谢谢啦, 请问楼主在哪找到的第二题的code,很想学习
一下
public long stringToLong(String str) {
if (str==null||str.length()==0){
return 0;
}
int sign=1;
Long sum=(long) 0;
int i=0;
while(i
i++;
}
if (i==str.length()){
return 0;
}
if (str.charAt(i)=='+'){
... 阅读全帖 |
|
|
|
l*******g 发帖数: 82 | 9 第二题,a-z 一共26个,用一个byte的高5bits存a-z,用剩下的3bits作为计数。
两个问题都是很简单的,一个LEETCODE的ATOI,一个是CC150的字母压缩ATOI(String
转number),我用Linear的方法做了,他不满意,要我改进(他明确说........ |
|
d******s 发帖数: 274 | 10 谢谢 不知道这个能不能证明 之前看到的算法貌似是按结束时间从早到晚排序 不知道
有什么差别?
另外再问下第二题?趁周末自己顶一下…
time
rooms |
|
|
A*********c 发帖数: 430 | 12 第二题感觉像是一维max product的二维版本配上leetcode的path sum。 |
|
|
q****m 发帖数: 177 | 14 来自主题: JobHunting版 - T店面两题 第二题有个很简单的公式,( m+n-2) choose (m-1) |
|
|
a**********0 发帖数: 422 | 16 第二题 我觉得constant是什么意思呢?
假设使用java表示一个整数 整数最大是27... 是个具体的数 也就是说即使按照数字的
位数来算 数字最多也是整数位
所以我觉得 你可以这样
建立一个int【】 长度为10 扫描一次 记录每个数字出现的次数 这个过程就是
constant 为什么 因为位数有上限 然后在循环一次 从后向前构造最大数
尽管看上去像是o(n) 但是n由于java存储的原因是有上限的 比如 int最多不超过100位 |
|
l*********8 发帖数: 4642 | 17 第二题,如果是32位整数,最多10个digit。逐个digit处理的话,最多10次。勉强可以
算O(10) = O(1)吧。 按digit的数目n来算,就是O(n)。 如果按输入的数据的范围M来
算,就是O(log M); |
|
l*********8 发帖数: 4642 | 18 第二题要我做的话, 只能这样:
int largestSibling(int n) {
int count[10] = {0};
for ( ; n; n/=10)
++count[n%10];
int ans = 0;
for (int i=9; i>=0; i--)
for ( ; count[i]; --count[i])
ans = ans * 10 + i;
return ans;
} |
|
|
|
l****s 发帖数: 75 | 21 第二题其实就是一个reverse linked list的变种。
TreeNode* flipUpsideDown2(TreeNode* root)
{
if (!root) return NULL;
TreeNode* dummy = new TreeNode(0);
dummy->left = root;
TreeNode* right = root->right;
root = root->left;
dummy->left->left = NULL;
dummy->left->right = NULL;
while (root)
{
TreeNode* tmp = root;
root = root->left;
tmp->left = right;
right = tmp->right;
tmp->right = dummy->left;
dummy->left = tmp;
}
root... 阅读全帖 |
|
p*****2 发帖数: 21240 | 22 第二题这样怎么样
TreeNode dfs(TreeNode node, TreeNode parent){
if(node==null) return null;
TreeNode left_res = dfs(node.left,node);
if(parent!=null){
node.left = parent.right;
node.right = parent;
}
return left_res!=null?left_res:node;
}
TreeNode convert(TreeNode root){
return dfs(root,null);
} |
|
|
l****s 发帖数: 75 | 24 第二题其实就是一个reverse linked list的变种。
TreeNode* flipUpsideDown2(TreeNode* root)
{
if (!root) return NULL;
TreeNode* dummy = new TreeNode(0);
dummy->left = root;
TreeNode* right = root->right;
root = root->left;
dummy->left->left = NULL;
dummy->left->right = NULL;
while (root)
{
TreeNode* tmp = root;
root = root->left;
tmp->left = right;
right = tmp->right;
tmp->right = dummy->left;
dummy->left = tmp;
}
root... 阅读全帖 |
|
p*****2 发帖数: 21240 | 25 第二题这样怎么样
TreeNode dfs(TreeNode node, TreeNode parent){
if(node==null) return null;
TreeNode left_res = dfs(node.left,node);
if(parent!=null){
node.left = parent.right;
node.right = parent;
}
return left_res!=null?left_res:node;
}
TreeNode convert(TreeNode root){
return dfs(root,null);
} |
|
y*****e 发帖数: 712 | 26 第二题不太明白,给了公式找最接近的是不是就是扫一遍所有的distance,找出最小的?
bless lz, 感觉答的不错! |
|
b******i 发帖数: 914 | 27 你这个第二题的解感觉有问题
如果是求绝对值最大的连续数组,那么可以maintain一个最大的正的连续和和一个最小
的负的连续和,但是题目要求求绝对值最小的连续数组,这个有用吗? |
|
b*********e 发帖数: 26 | 28 第二题这个方法有可能吗?
先求sum,w/o loss of generality, assume sum>0
然后从两端加逼,如果两端有>0的数,去掉一个使得|sum|最小,然后继续
如果两端都小于0,就一起往里扫算subarray sum,直到碰到subarray sum>0的时候停
止,去掉subarray sum可以mininize |sum|的那个subarray
sum<0的情况同理
过程中记录|sum|最小的时候的subarray |
|
U***A 发帖数: 849 | 29 第二题是不是先找出所有的degree为1的node,然后用dfs找出所有的路径长度然后求
平均值。 |
|
s*******m 发帖数: 228 | 30 给你一个数组,range[1,n]inclusive,然后说如果有个n+1的数组的话这里面有没
有重复?为什么?
pigeon hole principle
然后followup:怎么找到那个重复的数字?有可能有多个重复
继续followup;如果说不让你交换数字,即不能排序怎么办?可以用空间
继续followup:如果说没有空间怎么办?
这里用到了pigeon hole principle,二分查找
不懂最后一个followup,怎么用二分啊
--------------追加----------
这是别处看来的面经,
--pigeon hole principle,二分查找-- 是面试官的提示
----别人的回复,但我没看懂---
第二轮第二题不用空间, 是直接加起来arrray么。
恩,差不多吧,就是只要找到一个重复的就可以了所以用pigeon hole+二分每次能去掉
一半的范围 |
|
r****7 发帖数: 2282 | 31 你的第二轮面经是我电面的面经,careercup上也有
我打算自己offer定了发所有面经回馈版面,可惜offer一直没定下来。。。
其实第二题就是lc的permutation,用dp的话能变成2^n复杂度. |
|
d******a 发帖数: 238 | 32 把第二题帖个代码看看?没看出和permutation有联系 |
|
y*****e 发帖数: 712 | 33 第二题需要这么多class吗?我觉得用一个hashmap, 再traverse map行不行呢?
jsonList |
|
f******4 发帖数: 51 | 34 同问第二题,尤其是indent和括号的情况怎么处理? |
|
l*******2 发帖数: 8 | 35 第二题想到一个解法,还是用2 heaps,但是heap里面不直接存number,存一个class,
class里面存number和这个number出现的次数。heap还是以number的值排序。
这样一来max heap和min heap里面总共的数出现的次数不一定相等,需要用两个number
来记一下。另外插入新数的时候比较麻烦,需要用一个hashmap来记一下number到class
的查找 |
|
|
w********m 发帖数: 1137 | 37 google docs既然不是real time的,那么就是一个client-server的聊天室吧。server
要asycn保持长连接,client用ajax来get/post server上面的cache。cache应用于文档
,需要保存的时候再入数据
库。
第二题是把log level 设成error. 网页上用ajax直接读好了。 |
|
|
|
g*******d 发帖数: 73 | 40 第二题由于没排序, 那就用个unordered_map> map
map存的是值->idx的映射, 由于一个可能值对应多个idx, 所以用个set
然后就开始DFS+backtracking. 由于题目确定了lexicographically的顺序
所以先确定A, B, C, (然后删掉对应的idx, 不删也行) 再进map查询D=A-C+B (注意
overflow), 有的话就检查D的idx是否符合条件
总的O(n^3)时间, O(n)空间
应该有更好的解法, 望指教 |
|
c********t 发帖数: 5706 | 41 第二题,找最大值,最大值前面都买,最大值卖,然后recursively 做最大值后面的
array, 代码很好写,就不上了。 |
|
|
l*****t 发帖数: 3117 | 43 第二题没感觉。
咱要不斗地主吧?我还刚学了个斗地主的升级。 |
|
P*******e 发帖数: 39399 | 44 我都想自掏腰包开这个题了
不过大叔不给答案我们也没招。。。 |
|
f********g 发帖数: 91 | 45 难道第二题不需要观察颜色和形状变化? 难道是我想得太复杂? |
|
|
|
J***o 发帖数: 7166 | 48 打虎兄
这个第二题好像在英文语法里面逻辑是反的 |
|
|
d***a 发帖数: 13752 | 50 第二题没出错吗?我做不出来。 ^_^
黑A位跳不行,白R3断一手就完了。
黑R2位虎,白P2,算不出活路。
黑P2,白R2点入,不象活棋。 |
|