第一题代码, 复杂度O(n^2), 一开始没想出来, 不知道对不对:
public class Solution {
public static int getT(int[] nums){
int[] diff= new int[nums.length-1];
for(int i=0; i<diff.length; i++){
diff[i]= nums[i+1]- nums[i];
}
// 在diff中找到最短的重复片段;
for(int p2=1; p2<diff.length; p2++){
int p1= 0;
while(p2< diff.length && diff[p1]== diff[p2]){
p1++;
p2++;
};
if(p2==diff.length){
return nums[p2- p1]- nums[0];
}
}
return nums[nums.length-1]-nums[0];
}
public static void main(String[] args){
int[] arr= new int[]{1, 2, 3};
System.out.println(getT(arr));
arr= new int[]{2, 4, 6};
System.out.println(getT(arr));
arr= new int[]{3, 4, 6};
System.out.println(getT(arr));
}
}
最后一道题目,之前做过这道题目, 但是只能ac 70%: