由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 贡献一道电面题
相关主题
一道面试题大家来看看判断三角形形状这个代码有没有问题,谢谢
A电面题Leetcode: First Missing Positive
分享一道Yelp电面题看了建议娶码婆的帖子
贡献一个groupon的电面题用CPT全职工作的几个问题
FB的k-d tree面试题G家面经
Move on了,附送一个G题一个算法题目
发个G店面的题目在FB呆的好郁闷
T电面,肯定完了!向二爷致敬:Leetoffers内推平台今天发布
相关话题的讨论汇总
话题: int话题: return话题: arr话题: sort话题: 相邻
进入JobHunting版参与讨论
1 (共1页)
q********c
发帖数: 1774
1
给一array of ints, 找出三个数使他们能组成一个三角形。刷刷刷!!!
r****y
发帖数: 26819
2
这啥题啊,组成三角形三个边?

【在 q********c 的大作中提到】
: 给一array of ints, 找出三个数使他们能组成一个三角形。刷刷刷!!!
q********c
发帖数: 1774
3
对,比如找到A,B,C满足
A+B>C
A+C>B
B+C>A

【在 r****y 的大作中提到】
: 这啥题啊,组成三角形三个边?
l*********8
发帖数: 4642
4
bool canBuildTriangle(int a[], int n) {
sort(a, a+n);
for (int *p = a+1; p < a+n-1; p++)
if (*p + *(p-1) > *(p+1))
return true;
return false;
}

【在 q********c 的大作中提到】
: 给一array of ints, 找出三个数使他们能组成一个三角形。刷刷刷!!!
d********i
发帖数: 582
5
谁家的题?
r****y
发帖数: 26819
6
要求找数,不是真假

【在 l*********8 的大作中提到】
: bool canBuildTriangle(int a[], int n) {
: sort(a, a+n);
: for (int *p = a+1; p < a+n-1; p++)
: if (*p + *(p-1) > *(p+1))
: return true;
: return false;
: }

l*********8
发帖数: 4642
7
我只是用程序表达一下思路,懒得返回三个数了。 要改的话,就是把return 语句改改.

【在 r****y 的大作中提到】
: 要求找数,不是真假
q********c
发帖数: 1774
8
G. longway的思路是对的。

【在 r****y 的大作中提到】
: 要求找数,不是真假
d********i
发帖数: 582
9
G的题?
r****y
发帖数: 26819
10
显然没找全啊
只找了排序后相邻的两个较小边加起来的情况
排序后不相邻的两个边为啥不能加起来大于第三边呢

【在 q********c 的大作中提到】
: G. longway的思路是对的。
相关主题
Move on了,附送一个G题大家来看看判断三角形形状这个代码有没有问题,谢谢
发个G店面的题目Leetcode: First Missing Positive
T电面,肯定完了!看了建议娶码婆的帖子
进入JobHunting版参与讨论
r****y
发帖数: 26819
11
抱歉,程序也不对

改.

【在 l*********8 的大作中提到】
: 我只是用程序表达一下思路,懒得返回三个数了。 要改的话,就是把return 语句改改.
l*********8
发帖数: 4642
12
请指教,谢谢了

【在 r****y 的大作中提到】
: 抱歉,程序也不对
:
: 改.

q********c
发帖数: 1774
13
不须要找全,只需返回第一个满足条件的三个数

【在 r****y 的大作中提到】
: 显然没找全啊
: 只找了排序后相邻的两个较小边加起来的情况
: 排序后不相邻的两个边为啥不能加起来大于第三边呢

r****y
发帖数: 26819
14
我只知道sort以后老老实实简简单单:
for (int *p = a; p < a+n-2; p++) {
for (int *q = p+1; q < a+n-1; q++) {
for (int *r = q+1; r < a+n; r++) {
if (*p + *q > *r) {
printf("%d, %d, %d\n", *p, *q, *r);
}
else {
break;
}
}
}
}

【在 l*********8 的大作中提到】
: 请指教,谢谢了
r****y
发帖数: 26819
15
写法一样,找到一个就停下即可。

【在 q********c 的大作中提到】
: 不须要找全,只需返回第一个满足条件的三个数
w****m
发帖数: 146
16
your solution is much more slower..
It could be done within single loop

【在 r****y 的大作中提到】
: 我只知道sort以后老老实实简简单单:
: for (int *p = a; p < a+n-2; p++) {
: for (int *q = p+1; q < a+n-1; q++) {
: for (int *r = q+1; r < a+n; r++) {
: if (*p + *q > *r) {
: printf("%d, %d, %d\n", *p, *q, *r);
: }
: else {
: break;
: }

r****y
发帖数: 26819
17
do you have this loop? :-)

【在 w****m 的大作中提到】
: your solution is much more slower..
: It could be done within single loop

w****m
发帖数: 146
18
longway2008's solution is the one

【在 r****y 的大作中提到】
: do you have this loop? :-)
w****3
发帖数: 110
19
如果输出真假是可以的,如果要求全部就只能brute force了

【在 l*********8 的大作中提到】
: bool canBuildTriangle(int a[], int n) {
: sort(a, a+n);
: for (int *p = a+1; p < a+n-1; p++)
: if (*p + *(p-1) > *(p+1))
: return true;
: return false;
: }

r****y
发帖数: 26819
20
for different question, right?

【在 w****m 的大作中提到】
: longway2008's solution is the one
相关主题
用CPT全职工作的几个问题在FB呆的好郁闷
G家面经向二爷致敬:Leetoffers内推平台今天发布
一个算法题目google电面题分享+转身份问题请教
进入JobHunting版参与讨论
s********e
发帖数: 23
21
三角形的条件就是任意两边之和大于第三边。 所以,先排序,最小的两边相加之和大
于第三边的话,那其他任意俩边之和无疑是大于第三边的。
java:
public boolean isTriangle(int[] arr) {
Arrays.sort(arr);
for (int i = 0; i < arr.length - 2; i++) {
if (arr[i] + arr[i + 1] > arr[i + 2])
return true;
}
return false;
}
o***g
发帖数: 2784
22
程序结果是对的,但是逻辑不够严谨
比如排好序之后,序号相邻的0 1 2 3四个数
如果0 1 2 不满足,那还有0 1 3, 0 2 3, 1 2 3三组数。为什么只检查1 2 3就可以
了呢
因为0 1 2 不满足,那0 1 3肯定也不满足,因为3>=2。
如果0 2 3满足,则1 2 3必然满足,反之不一定。
因为题目是只需要找到一组就行了。所以只检查1 2 3这组就好了。

【在 s********e 的大作中提到】
: 三角形的条件就是任意两边之和大于第三边。 所以,先排序,最小的两边相加之和大
: 于第三边的话,那其他任意俩边之和无疑是大于第三边的。
: java:
: public boolean isTriangle(int[] arr) {
: Arrays.sort(arr);
: for (int i = 0; i < arr.length - 2; i++) {
: if (arr[i] + arr[i + 1] > arr[i + 2])
: return true;
: }
: return false;

x***2
发帖数: 93
23
注意把负数剔出去
G****A
发帖数: 4160
24
证明只需要check相邻的三个数:
假设有三个不相邻的数也符合要求:a_k-i + a_k > a_k+j where i and j are任意正整
数。
因为a_k-1 >= a_k-i,所以 a_k-1 + a_k > a_k+j
因为a_k+1 <= a_k+j,所以 a_k-1 + a_k > a_k+1

【在 o***g 的大作中提到】
: 程序结果是对的,但是逻辑不够严谨
: 比如排好序之后,序号相邻的0 1 2 3四个数
: 如果0 1 2 不满足,那还有0 1 3, 0 2 3, 1 2 3三组数。为什么只检查1 2 3就可以
: 了呢
: 因为0 1 2 不满足,那0 1 3肯定也不满足,因为3>=2。
: 如果0 2 3满足,则1 2 3必然满足,反之不一定。
: 因为题目是只需要找到一组就行了。所以只检查1 2 3这组就好了。

d********i
发帖数: 582
25
我能请教下为什么3,6,7可以组成一个三角形吗?
参考链接:http://www.geeksforgeeks.org/find-number-of-triangles-possible/
G****A
发帖数: 4160
26
6 + 7 > 3 满足么?
“任意2边和大于第三边”是必要条件,但是不是充要条件我忘记论证方法了。

【在 d********i 的大作中提到】
: 我能请教下为什么3,6,7可以组成一个三角形吗?
: 参考链接:http://www.geeksforgeeks.org/find-number-of-triangles-possible/

1 (共1页)
进入JobHunting版参与讨论
相关主题
向二爷致敬:Leetoffers内推平台今天发布FB的k-d tree面试题
google电面题分享+转身份问题请教Move on了,附送一个G题
贡献几道CS电面题发个G店面的题目
google电面题,同时问一下,一般过多久给回复啊T电面,肯定完了!
一道面试题大家来看看判断三角形形状这个代码有没有问题,谢谢
A电面题Leetcode: First Missing Positive
分享一道Yelp电面题看了建议娶码婆的帖子
贡献一个groupon的电面题用CPT全职工作的几个问题
相关话题的讨论汇总
话题: int话题: return话题: arr话题: sort话题: 相邻