- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
Given
n
positive real numbers in an array, find whether there exists a triplet among this set such that, the sum of the triplet is in the range(1,
. Do it in linear time and constant space.
2)
- the array is not ordered.
- numbers are positive
- numbers are real numbers
如有任何帮助,我们将不胜感激。谢谢。
最佳答案
诀窍是找出一种方法来对可能的解决方案进行分类,并为每个解决方案提出一个线性时间常数空间解决方案。
考虑三个范围 X = (0,2/3), Y = [2/3,1], Z = (1,2)
.最多一个值可以来自 Z
(如果两个值来自 Z
,则总和将超过 1+1=2
)。同样,至少有一个值必须来自 X
.假设有 3 个值 a <= b <= c
这样1 <= a+b+c <= 2
.然后,考虑哪些可能的解决方案类别是可行的:
A) `a \in X, b \in X, C \in X`
B) `a \in X, b \in X, C \in Y`
C) `a \in X, b \in X, C \in Z`
D) `a \in X, b \in Y, C \in Y`
E) `a \in X, b \in Y, C \in Z`
那么我们如何测试每个案例呢?
情况 A 非常容易测试:和保证小于 2,因此我们只需要测试最大和(X 中最大的 3 个元素)超过 1。
情况 C 非常容易测试:因为总和保证大于 1,我们只需要检查总和是否小于 2。因此,为了做到这一点,我们只需要测试最小的 2 个值X和Z中的最小值
情况 D 和 E 与情况 C 类似(因为总和必须至少为 4/3 > 1,所以在每个类别中选择可能的最小值)。
案例 B 是唯一棘手的案例。 0 < a+b < 4/3
和 2/3 <= c <= 1
.为了处理案例 B,我们考虑这些区间:X1 = (0, 1/2), X2 = [1/2 2/3], Y = [2/3, 1]。
这导致以下三种有效情况:
B1。 a在X1中,b在X2中,c在Y中
B2。 a在X1中,b在X1中,c在Y中
B3。 a在X2中,b在X2中,c在Y中
案例 B1 和 B3:三个数字的总和总是大于 1,所以我们取最小值并检查它是否小于 2。
情况 B2:三个数字的和总是小于 2,所以我们取最大和并检查是否大于 1。
总而言之,测试是:
|X| >= 3
和 Xmax(1) + Xmax(2) + Xmax(3) >= 1
|X| >= 2
, |Z| >= 1
, 和 Xmin(1)+Xmin(2)+Zmin(1) <= 2
|X| >= 1
, |Y| >= 2
, 和 Xmin(1)+Ymin(1)+Ymin(2) <= 2
|X| >= 1
, |Y| >= 1
, |Z| >= 1
, 和 Xmin(1)+Ymin(1)+Zmin(1) <= 2
|X| >= 2
, |Y| >= 1
, 和 Xmax(1) + Xmax(2) + Ymin(1) < 2
|X| >= 2
, |Y| >= 1
, 和 Xmin(1) + Xmin(2) + Ymax(1) > 1
)每次测试都可以在线性时间和常数空间中进行(只需要找到Xmax(1), Xmax(2), Xmax(3), Xmin(1), Xmin(2), Ymin(1), Ymin(2), Ymax(1), Zmin(1)
,即使数据没有排序也可以一次找到)
关于arrays - 总和在 (1,2) 范围内的三元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19557505/
我想知道javascript中if的简码是什么? 就像在 PHP 中一样: $res = ($x > $y)? $x: $y; 它在 JavaScript 中的转换是什么? 最佳答案 在 javasc
请问为什么下面的代码会报错? 错误: numberOne > numberTwo ? return "true" : return "false"; ^
在我的代码中,我检查系统函数是否等于零,如果是我返回另一个值,如果不是,我返回测试值。 (class.verylongfunc(arg, arg) == 0) ? othervar : cla
在 PHP 中,有没有一种方法可以使用三元条件连接两个字符串? 当我尝试这样做时,我得到的只是 else 而不是所需的 something else。 最佳答案 像这样把整个三元运算符放在方括号中:
似乎在三元运算符中存在某种类型混淆。我知道这已在其他 SO 线程中得到解决,但它始终与可空值有关。另外,就我而言,我真的只是在寻找更好的方法。 我希望能够使用 proc.Parameters[PARA
有没有办法在不进行赋值或伪造赋值的情况下进行 java 三元运算? 我喜欢在执行一堆 if/then/else 时的简洁三元代码。 我希望能够基于 boolean 代数语句调用两个 void 函数之一
我正在使用 XSLT 和 XML 来生成输出文档。 我在数据中拥有的(以我无法控制的 XML 形式)如下: 4 我需要在计算中使用这些。我看到为这些提供默认值需要对文档执行转换以提供一个有点冗长的
这个问题已经有答案了: Ternary operators in JavaScript without an "else" (13 个回答) 已关闭 4 年前。 我一直使用这样的三元表达式,但我不喜欢
我在 VB.NET 中发现了一个可以轻松重现的简单错误: Dim pDate As Date? Dim pString As String = "" ' works fine as expected
所以,我有这段代码,它实际上有效: (散列将是这样的对象:{"bob"=> "12, "Roger"=> "15", etc},并且 isGood(key) 是调用函数 isGood ,如果玩家好或坏
是否有以下 JavaScript bool 三元表达式的简写语法: var foo = (expression) ? true : false 最佳答案 当然,您只想将表达式转换为 bool 值: v
在 Java 中,如果我在常规 if 中使用三元 if 运算符,例如: if ((x > y - z) ? true : callLongWaitedMethod(many, parameteres)
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 7 年前。 Improve
var test = "Hello World!"; 在 Java 10+ 中,上面的代码片段可以编译,test 在编译时被推断为 String。 但是,我们可以使用条件(三元)运算符来返回不同的类型
嗨,我尝试在渲染内部使用三元条件,但遇到一些错误,这是我的代码: render() { return ( (this.emai
这里我有以下 JavaScript 代码,带有两个值。 var w = $("#id1").val(); var h = $("#id2").val(); (w == h) ? (w=350 , h
我一直想知道如何用 C++ 兼容语言编写 "A ? B : C" 语法。 我认为它的工作方式类似于:(伪代码) If A > B C = A Else C = B 有没有经验丰富的 C++
考虑两个 vector ,A 和 B,大小为 n,7 <= n <= 23 . A 和B 都只包含-1、0 和1。 我需要一个计算A 和B 内积的快速算法。 到目前为止,我一直在考虑使用以下编码将
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
如果您一开始就讨厌三元条件运算符,则无需回复 ;) 我经常看到它与赋值表达式一起使用,例如: var foo = (some_condition) ? then_code : else_code; 但
我是一名优秀的程序员,十分优秀!