и я придумал это решение:
import java.util.ArrayList;
import java.util.List;
public class Solution {
public int pivotIndex(int[] nums) {
Integer result = null;
List right = new ArrayList(nums.length);
List left = new ArrayList(nums.length);
int leftSum, rightSum;
for (int i = 0; i < nums.length; i++) {
leftSum = 0;
rightSum = 0;
for (int j = 0; j < i; j++) {
left.add(nums[j]);
}
for (int num : left) {
leftSum += num;
}
for (int j = i + 1; j < nums.length; j++) {
if (j > nums.length) {
right.add(0);
} else {
right.add(nums[j]);
}
}
for (int num : right) {
rightSum += num;
}
if (leftSum == rightSum) {
result = i;
return result;
} else {
result = -1;
left.clear();
right.clear();
}
}
return result;
}
}
< /code>
Но я превышаю ограничение по времени ...
может кто -нибудь помочь мне с некоторыми советами о том, как сделать это быстрее?
до , Я создавал создание нового объекта ArrayList в начале первого для цикла, поэтому я изменил их сферу, так что происходит только одно экземпляры и просто очистил ариористы в конце цикла.
то же самое для Leftsum и Rightsum, я изменил их применение для всего метода и просто изменил их значение на 0 в начале первого для цикла. Я подумал, что оба они изменились бы быстрее, но, очевидно, не было? Советы / хорошие практики будут высоко оценены как человек, который пытается подготовиться к первым собеседованиям в этой области

Подробнее здесь: https://stackoverflow.com/questions/742 ... e-solution