给出由 N 个整数组成的零索引数组 A。三元组 (P, Q, R) 是三角形,如果且
A[P] + A[Q] > A[R],
A[Q] + A[R] > A[P],
A[R] + A[P] > A[Q].
例如,考虑数组 A,使得
A[0] = 10 A[1] = 2 A[2] = 5
A[3] = 1 A[4] = 8 A[5] = 20
三元组 (0, 2, 4) 是三角形。
写一个函数
int triangle(const vector<int> &A);
给定一个由 N 个整数组成的零索引数组 A,如果该数组存在三角形三元组,则返回 1,否则返回 0。
假使,假设:
N是[0..100,000]范围内的整数;
数组 A 的每个元素都是 [-2,147,483,648..2,147,483,647] 范围内的整数。
例如,给定数组 A,使得
A[0] = 10 A[1] = 2 A[2] = 5
A[3] = 1 A[4] = 8 A[5] = 20
该函数应返回 1,如上所述。给定数组 A 使得
A[0] = 10 A[1] = 50 A[2] = 5
A[3] = 1
该函数应返回 0。
预期最坏情况时间复杂度:
预期最坏情况空间复杂度:O(1)