文章
408
粉丝
0
获赞
0
访问
105.7k
1):定义三个下标分别表示s1,s2,s3当前遍历下标,然后定义sum=|a-b|+|b-c|+|c-a|,以及minnum=sum,mini=i,minj=j,mink=k;(a∈S1,b∈S2,c∈S3)初始值为INT_MAX;接着我们怎么将s1[i],s2[j],s3[k]中最小值的下标加一,比较当前sum与minnum的大小如果minnum<sum则进行更新mini,minj,mink否则继续上面操作,直到
i==s1.length,j=s2.length,k=s3.length;
2):
// 全局变量(注意:在多线程或多次调用时可能有副作用,建议改为局部变量+返回结构体)
6int sum = INT_MAX;
7int minnum = INT_MAX; // 初始最小值设为最大整数
8int mini = 0;
9int minj = 0;
10int mink = 0;
11
12/**
13 * 辅助函数:返回三个整数中的最小值
14 */
15int min3(int a, int b, int c) {
16 int min_val = a;
17 if (b < min_val) min_val = b;
18 if (c < min_val) min_val = c;
19 return min_val;
20}
21
22/**
23 * 函数功能:
24 * 在三个**已升序排序**的整型数组 s1, s2, s3 中,
25 * 寻找下标 (i, j, k),使得三元组 (s1[i], s2[j], s3[k]) 的
26 * 两两绝对差之和最小:
27 * |s1[i] - s2[j]| + |s2[j] - s3[k]| + |s3[k] - s1[i]|
28 *
29 * 参数:
30 * s1, s2, s3 —— 三个已排序的数组
31 * len1, len2, len3 —&md...
登录后发布评论
暂无评论,来抢沙发