小编tos*_*ism的帖子

三角形:确定数组是否包含三角形三元组(可编码性)

这是来自Codility的Triangle问题:

给出了一个由N个整数组成的零索引数组A。
如果0≤0,则三元组(P,Q,R)为三角形。P <Q <R <N并且:

A [P] + A [Q]> A [R],
A [Q] + A [R]> A [P],
A [R] + A [P]> A [Q]。

编写一个函数:

int solution(vector<int> &A);  
Run Code Online (Sandbox Code Playgroud)

如果给定一个由N个整数组成的零索引数组A,则在该数组存在三角形三元组的情况下返回1,否则返回0。

例如,给定数组A使得:
A [0] = 10,A [1] = 2,A [2] = 5,A [3] = 1,A [4] = 8,A [5] = 20三元组(0、2、4)是三角形,该函数应返回1。

给定数组A,使得:
A [0] = 10,A [1] = 50,A [2] = 5,A [3] = 1
函数应返回0。

假使,假设:

N为[0..100,000]范围内的整数;
数组A的每个元素都是[[2,147,483,648..2,147,483,647]范围内的整数。

这是我在C ++中的解决方案:

int solution(vector<int> &A) {
    if(A.size()<3) return 0;

    sort(A.begin(), …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm math integer-overflow

3
推荐指数
3
解决办法
3364
查看次数

标签 统计

algorithm ×1

c++ ×1

integer-overflow ×1

math ×1