一道简单算法题求助# JobHunting - 待字闺中
w*n
1 楼
Given a sequence of integers as an array, determine whether it is possible
to obtain a strictly increasing sequence by removing no more than one
element from the array.
写一个方法, 判断一个 给定的 int 数组(长度 > 2) 能不能从数组中去除一个
int,使这个新数组 严格递增。
比如 数组位 【1,3,2,1】 , 不能除去一个元素 使数组 严格递增,返回false;
数组【1,3,2】,除去一个元素 可得【1,3】,或者【1,2】, 可以严格递增,返
回true;
数组中的int 范围为 10的-5次方 到 10的5次方。 数组长度为2 到10的5次方。
我的解法:
boolean almostIncreasingSequence(int[] sequence) {
if(sequence.length ==2 ){
return true;
}
boolean result = true;
for(int i = 0; i result = true;
int [] arr = Arrays.copyOf(sequence, sequence.length);
System.arraycopy(arr, i+1 , arr , i, sequence.length-1-i);
for(int j = 0; j < arr.length -2; j++){
if(arr[j] >= arr[j+1]){
result = false;
break;
}
}
if(result) break;
}
return result;
}
虽然结果对,但是超时。请问有没有好的解法?
to obtain a strictly increasing sequence by removing no more than one
element from the array.
写一个方法, 判断一个 给定的 int 数组(长度 > 2) 能不能从数组中去除一个
int,使这个新数组 严格递增。
比如 数组位 【1,3,2,1】 , 不能除去一个元素 使数组 严格递增,返回false;
数组【1,3,2】,除去一个元素 可得【1,3】,或者【1,2】, 可以严格递增,返
回true;
数组中的int 范围为 10的-5次方 到 10的5次方。 数组长度为2 到10的5次方。
我的解法:
boolean almostIncreasingSequence(int[] sequence) {
if(sequence.length ==2 ){
return true;
}
boolean result = true;
for(int i = 0; i
int [] arr = Arrays.copyOf(sequence, sequence.length);
System.arraycopy(arr, i+1 , arr , i, sequence.length-1-i);
for(int j = 0; j < arr.length -2; j++){
if(arr[j] >= arr[j+1]){
result = false;
break;
}
}
if(result) break;
}
return result;
}
虽然结果对,但是超时。请问有没有好的解法?