我有一个方法,它由嵌套在 for 循环中的 if 语句组成:
for (int i = 0; i < val; i=i+2)
{
for (int j = i+1; j < val; j=j+1)
{
actualDistance = actualDistance + (ulong)Math.Max(revenue[i], revenue[j]) * (ulong)Math.Abs(point[j] - point[i]);
if (j + 1 < val)
{
actualDistance = actualDistance + (ulong)Math.Max(revenue[i+1], revenue[j+1]) * (ulong)Math.Abs(point[j+1] - point[i+1]);
}
}
}
但是,如果 val 表示数千万以内的数字,则该方法在运行时需要很长时间,因为它同时用于 for 和 if 循环。
有没有更好、更有效的方法来做到这一点?目前的代码效率太低了。