-
合併兩個有序數組
class Solution { 數組
public void merge(int[] nums1, int m, int[] nums2, int n) { spa
System.arraycopy(nums2, 0, nums1, m, n); 遞歸
Arrays.sort(nums1); io
} class
} sort
-
第一個錯誤的版本
-
遞歸解法:本身忽然來了靈感寫的,哈哈哈,遞歸真的很神奇!
/* The isBadVersion API is defined in the parent class VersionControl. margin
boolean isBadVersion(int version); */ di
class Solution extends VersionControl { while
public int firstBadVersion(int n) { copy
return helper(0, n);
}
private int helper(int l,int r) {
if (l<r) {
int m=l+(r-l)/2;
if (isBadVersion(m)) {
return helper(l, m);
}else {
return helper(m+1, r);
}
}
return l;
}
}
-
二分法解法:
public class Solution extends VersionControl {
public int firstBadVersion(int n) {
int l=1;
int r=n;
while(l<r){
int m=l+((r-l)/2);
if(isBadVersion(m)){
r=m;
}else{
l=m+1;
}
}
return l;
}
}
-
很慢的解法:
public class Solution extends VersionControl {
public int firstBadVersion(int n) {
int i=1;
while(i<=n){
if(isBadVersion(i)){
break;
}
i++;
}
return i;
}
}