public List<Integer> transformArray(int[] arr) {
boolean isChange = false;
int n = arr.length;
int[] temp = new int[n];
initialTemp(temp, arr, n);
while (true) {
isChange = false;
for (int i = 1; i < n - 1; ++i) {
if (arr[i] > arr[i - 1] && arr[i] > arr[i + 1]) {
isChange = true;
temp[i] = arr[i] - 1;
} else if (arr[i] < arr[i - 1] && arr[i] < arr[i + 1]) {
isChange = true;
temp[i] = arr[i] + 1;
} else {
temp[i] = arr[i];
}
}
if (!isChange) {
break;
} else {
System.arraycopy(temp, 0, arr, 0, n);
}
}
List<Integer> res = intArrToList(arr);
return res;
}
private void initialTemp(int[] temp, int[] arr, int n) {
temp[0] = arr[0];
temp[n - 1] = arr[n - 1];
}
public List<Integer> intArrToList(int data[]) {
IntStream is = Arrays.stream(data);
Stream<Integer> s = is.boxed();
List<Integer> res = s.collect(Collectors.toList());
return res;
}
LeetCode-Algorithms-[Easy]1243. 数组变换
猜你喜欢
转载自blog.csdn.net/m0_37302219/article/details/105482369
今日推荐
周排行