由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 用Java面试的大牛们
相关主题
java没有c++的指针引用对有些题很麻烦一道挺简单的题给搞砸了
(C / C++) 关于指针的引用,求助Leetcode 问题:remove Nth FromEnd 有一点儿不懂,謝謝指点!
面试面试官错了怎么办?问一道旧题
C++疑问:Animal a,Animal* a,哪种访问方式快Amazon On-site ,kindle组有什么要特别注意的地方么?+前两轮电面面经
请问一下关于new和delete的概念BST 节点的下一个数
G 家电面的时候大家都是用什么语言?有没有觉得这个面试问题有点膈应?
应该主力练习C++还是JAVALC的BST iterator到底要考察什么?
面试只会C++可以吗?pure storage 面经 已挂
相关话题的讨论汇总
话题: node话题: java话题: listtobst话题: start话题: end
进入JobHunting版参与讨论
1 (共1页)
p*****2
发帖数: 21240
1
最近在看leetcode的blogs,很多算法很巧妙,但是用到了C/C++的指针和引用的特性。
Java里边没有呀。有没有人总结过用Java怎么应用这些巧妙算法?定义class变量吗?
t**********h
发帖数: 2273
2
对,class 变量在java中很常见,因为class中,可以把class 变量定义为private,所
以封装的还是很好的,不用怕。c的话,是不是叫做global变量,好像不推荐这么弄

【在 p*****2 的大作中提到】
: 最近在看leetcode的blogs,很多算法很巧妙,但是用到了C/C++的指针和引用的特性。
: Java里边没有呀。有没有人总结过用Java怎么应用这些巧妙算法?定义class变量吗?

p*****2
发帖数: 21240
3

主要是C可以传指针,所以一个函数相当于可以返回很多的值。Java没有指针,只能返
回一个值。但是如果定义一个class的话,code很不漂亮。所以定义class变量可以出同
样的效果。但是一般都是写一个函数,定义个class也不漂亮。那就只定义全局变量?
这样code可以简洁。不知道这么做面试官怎么想。上次F死活不让我定义类变量。

【在 t**********h 的大作中提到】
: 对,class 变量在java中很常见,因为class中,可以把class 变量定义为private,所
: 以封装的还是很好的,不用怕。c的话,是不是叫做global变量,好像不推荐这么弄

p*****2
发帖数: 21240
4
算了。就定义类变量了。没别的好法子。
t**********h
发帖数: 2273
5
我擦,你连f都面过了啊?牛逼

【在 p*****2 的大作中提到】
: 算了。就定义类变量了。没别的好法子。
h*c
发帖数: 1859
6
难倒不是
Java里面的都是引用么?

【在 p*****2 的大作中提到】
: 最近在看leetcode的blogs,很多算法很巧妙,但是用到了C/C++的指针和引用的特性。
: Java里边没有呀。有没有人总结过用Java怎么应用这些巧妙算法?定义class变量吗?

w**z
发帖数: 8232
7
引用英文怎么说?中文术语不太看得懂。

【在 h*c 的大作中提到】
: 难倒不是
: Java里面的都是引用么?

h*c
发帖数: 1859
8
reference

【在 w**z 的大作中提到】
: 引用英文怎么说?中文术语不太看得懂。
w**z
发帖数: 8232
9
java makes a copy of the reference, then pass that to the method call.

【在 h*c 的大作中提到】
: reference
t**********h
发帖数: 2273
10
对,copy of reference,正解

【在 w**z 的大作中提到】
: java makes a copy of the reference, then pass that to the method call.
相关主题
G 家电面的时候大家都是用什么语言?一道挺简单的题给搞砸了
应该主力练习C++还是JAVALeetcode 问题:remove Nth FromEnd 有一点儿不懂,謝謝指点!
面试只会C++可以吗?问一道旧题
进入JobHunting版参与讨论
h*c
发帖数: 1859
11
那不还是reference么?
你C/C++里面的指针也还是copy
一样的.

【在 w**z 的大作中提到】
: java makes a copy of the reference, then pass that to the method call.
w**z
发帖数: 8232
12
好久没用c++,现在一见*&就晕菜。

【在 h*c 的大作中提到】
: 那不还是reference么?
: 你C/C++里面的指针也还是copy
: 一样的.

d**e
发帖数: 6098
13
对primitive java没引用可用。
上一次做一题binary tree,用递归,但那层数表示把我头都想大,定义成一个class
level的static variable又不太好。

【在 h*c 的大作中提到】
: 那不还是reference么?
: 你C/C++里面的指针也还是copy
: 一样的.

y**********u
发帖数: 6366
14
嗯,这就是java的Pass by value。。。reference value

【在 w**z 的大作中提到】
: java makes a copy of the reference, then pass that to the method call.
y**********u
发帖数: 6366
15
C++里面的reference就真是reference了

【在 h*c 的大作中提到】
: 那不还是reference么?
: 你C/C++里面的指针也还是copy
: 一样的.

y**********u
发帖数: 6366
16
如果有多个形参要改变的话,直接封装在一个HashMap里头当参数传递
更好
Enum是类型

【在 d**e 的大作中提到】
: 对primitive java没引用可用。
: 上一次做一题binary tree,用递归,但那层数表示把我头都想大,定义成一个class
: level的static variable又不太好。

p*****2
发帖数: 21240
17

给个简单的例子。我Java不熟。Enum从来没用过呀。

【在 y**********u 的大作中提到】
: 如果有多个形参要改变的话,直接封装在一个HashMap里头当参数传递
: 更好
: Enum是类型

p*****2
发帖数: 21240
18
刚用类变量解了O(n)的linkedlist to BST的题。 面试这么写行吗?感觉这是我能想到
的最简洁的写法了。
ListNode node;
Node listToBST(ListNode head)
{
node = head;
int count = 0;
while (head != null)
{
head = head.next;
count++;
}
return listToBST(0, count - 1);
}
Node listToBST(int start, int end)
{
if (start > end)
return null;
int mid = start + (end - start) / 2;
Node left = listToBST(start, mid - 1);
Node parent = new Node(node.val);
node = node.next;
parent.left = left;
parent.right = listToBST(mid + 1, end);
return parent;
}
y**********u
发帖数: 6366
19
Enum也得自己定义啊
如果你不介意比较难看的话,随便把你要改的参数放入一个container里头就可以了,没
必要重新写类

传递

【在 p*****2 的大作中提到】
: 刚用类变量解了O(n)的linkedlist to BST的题。 面试这么写行吗?感觉这是我能想到
: 的最简洁的写法了。
: ListNode node;
: Node listToBST(ListNode head)
: {
: node = head;
: int count = 0;
: while (head != null)
: {
: head = head.next;

p*****2
发帖数: 21240
20

container是啥东西?

【在 y**********u 的大作中提到】
: Enum也得自己定义啊
: 如果你不介意比较难看的话,随便把你要改的参数放入一个container里头就可以了,没
: 必要重新写类
:
: 传递

相关主题
Amazon On-site ,kindle组有什么要特别注意的地方么?+前两轮电面面经LC的BST iterator到底要考察什么?
BST 节点的下一个数pure storage 面经 已挂
有没有觉得这个面试问题有点膈应?问一个链表的问题
进入JobHunting版参与讨论
y**********u
发帖数: 6366
21
Collections + Map

了,没

【在 p*****2 的大作中提到】
:
: container是啥东西?

h****e
发帖数: 928
22
我觉得用Java面试的一个很大的好处是不用考虑释放内存。
例如LeetCode上的一些Remove elements from List的题目,
我试着用C++和Java做,Java只要更新next之类的值就可以
了,C++还要用delete释放那些移去的元素的内容,挺繁琐的。
g*********e
发帖数: 14401
23
据说java是民工语言?上手太容易,不能造成entry barrier?
h****e
发帖数: 928
24
Java入门容易,精通也难吧。你看apache.org下的projects,
基本上都是用Java的,但是那应该不是一般的码工能写得出来
的吧。
当然据说有些老印在印度参加一些Hadoop的开发工作,都可以
号称是杰出人才,只有本科学位都在办EB1。
Z*****Z
发帖数: 723
25
除了全局变量还有一个办法模拟C里面的指针
定义一个helper类,比如
class ListNodeHelper{
ListNode ref;
}
把需要在C里面传指针在Java里面只能传引用的的痛苦的地方用这个类的变量代替。
另外,还可以考虑定义一个长度为1的数组。。。
其实本质上都是语文老师说的,放到容器里面。

【在 p*****2 的大作中提到】
: 刚用类变量解了O(n)的linkedlist to BST的题。 面试这么写行吗?感觉这是我能想到
: 的最简洁的写法了。
: ListNode node;
: Node listToBST(ListNode head)
: {
: node = head;
: int count = 0;
: while (head != null)
: {
: head = head.next;

X*K
发帖数: 87
26
Java里虽然不用释放内存,但是也应该把被删掉的那些
elemen的内容还有next置空,不然会影响gc。

【在 h****e 的大作中提到】
: 我觉得用Java面试的一个很大的好处是不用考虑释放内存。
: 例如LeetCode上的一些Remove elements from List的题目,
: 我试着用C++和Java做,Java只要更新next之类的值就可以
: 了,C++还要用delete释放那些移去的元素的内容,挺繁琐的。

i***e
发帖数: 452
27
请问大牛在哪里可以看leetcode的blog? 谢谢

【在 p*****2 的大作中提到】
:
: container是啥东西?

p*****2
发帖数: 21240
28

leetcode.com呀

【在 i***e 的大作中提到】
: 请问大牛在哪里可以看leetcode的blog? 谢谢
i***e
发帖数: 452
29
谢谢!

【在 p*****2 的大作中提到】
:
: leetcode.com呀

w**z
发帖数: 8232
30
你把node 传进method call 不可以吗?
Node listToBST(ListNode node, int start, int end)
{
if (start > end)
return null;
int mid = start + (end - start) / 2;
Node left = listToBST(node, start, mid - 1);
Node parent = new Node(node.val);
node = node.next;
parent.left = left;
parent.right = listToBST(node, mid + 1, end);
return parent


【在 p*****2 的大作中提到】
: 刚用类变量解了O(n)的linkedlist to BST的题。 面试这么写行吗?感觉这是我能想到
: 的最简洁的写法了。
: ListNode node;
: Node listToBST(ListNode head)
: {
: node = head;
: int count = 0;
: while (head != null)
: {
: head = head.next;

相关主题
一道链表题及其变种(C / C++) 关于指针的引用,求助
微软onsite有behaviral 问题吗面试面试官错了怎么办?
java没有c++的指针引用对有些题很麻烦C++疑问:Animal a,Animal* a,哪种访问方式快
进入JobHunting版参与讨论
p*****2
发帖数: 21240
31

不行。这就是为什么我要用类变量

【在 w**z 的大作中提到】
: 你把node 传进method call 不可以吗?
: Node listToBST(ListNode node, int start, int end)
: {
: if (start > end)
: return null;
: int mid = start + (end - start) / 2;
: Node left = listToBST(node, start, mid - 1);
: Node parent = new Node(node.val);
: node = node.next;
: parent.left = left;

w**z
发帖数: 8232
32
对哦,好像只能你那么弄才work了。
leecode的全是用C++写的,我的脑袋已经不适应指针了,看着真费劲。

【在 p*****2 的大作中提到】
:
: 不行。这就是为什么我要用类变量

1 (共1页)
进入JobHunting版参与讨论
相关主题
pure storage 面经 已挂请问一下关于new和delete的概念
问一个链表的问题G 家电面的时候大家都是用什么语言?
一道链表题及其变种应该主力练习C++还是JAVA
微软onsite有behaviral 问题吗面试只会C++可以吗?
java没有c++的指针引用对有些题很麻烦一道挺简单的题给搞砸了
(C / C++) 关于指针的引用,求助Leetcode 问题:remove Nth FromEnd 有一点儿不懂,謝謝指点!
面试面试官错了怎么办?问一道旧题
C++疑问:Animal a,Animal* a,哪种访问方式快Amazon On-site ,kindle组有什么要特别注意的地方么?+前两轮电面面经
相关话题的讨论汇总
话题: node话题: java话题: listtobst话题: start话题: end