代码拉取完成,页面将自动刷新
同步操作将从 xusun000/408-所有真题算法 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include<stdio.h>
#include<stdlib.h>
//获取三个数的绝对值距离
int getDis(int a, int b, int c) {
int ab = (a - b) > 0 ? (a - b) : (b - a);
int bc = (b - c) > 0 ? (b - c) : (c - b);
int ac = (a - c) > 0 ? (a - c) : (c - a);
if (ab >= bc && ab >= ac)return ab * 2;
if (bc >= ab && bc >= ac)return bc * 2;
if (ac >= ab && ac >= bc)return ac * 2;
}
//获取三个数中的最小值
int getMin(int a, int b, int c) {
if (a <= b && a <= c)return 0;
if (b <= c && b <= a)return 1;
if (c <= a && c <= b)return 2;
}
void getAbsDis(int s1[], int s2[], int s3[], int l1, int l2, int l3) {
int min = INT_MAX;
int p1 = 0, p2 = 0, p3 = 0;
while (p1 < l1 && p2 < l2 && p3 < l3) {
int a = s1[p1], b = s2[p2], c = s3[p3];
if (min > getDis(a, b, c)) {
min = getDis(a, b, c);
}
int flag = getMin(a, b, c);
if (flag == 0)p1++;
if (flag == 1)p2++;
if (flag == 2)p3++;
}
printf("最小值为:%d", min);
}
int main() {
int s1[] = { -1,0,9 };
int s2[] = { -25,-10,9,11 };
int s3[] = { 2,9,17,30,41 };
getAbsDis(s1, s2, s3, 3, 4, 5);
return 0;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。