推薦閱讀
智能化校園:深入探討云端管理系統(tǒng)設(shè)計與實現(xiàn)(一)
智能化校園:深入探討云端管理系統(tǒng)設(shè)計與實現(xiàn)(二)
題目
題目:給定一個 n 個元素有序的(升序)整型數(shù)組 nums 和一個目標(biāo)值 target ,寫一個函數(shù)搜索 nums 中的 target,如果目標(biāo)值存在返回下標(biāo),否則返回 -1。
提示:
- 你可以假設(shè) nums 中的所有元素是不重復(fù)的。
- n 將在 [1, 10000]之間。
- nums 的每個元素都將在 [-9999, 9999]之間。
解法一
class Solution {
public int search(int[] nums, int target) {
for (int i=0;i<nums.length;i++){
if (target==nums[i]){
return i;
}
}
return -1;
}
}
解法二
看到題目給出的提示,數(shù)組為有序數(shù)組,數(shù)組元素不重復(fù)。這些不就是使用二分法的前提條件嘛。
class Solution {
public int search(int[] nums, int target) {
int left=0,right=nums.length-1;
while(left<=right){
int mid=left+(right-left)/2;
if (nums[mid]==target)
return mid;
else if (nums[mid]<target)
left=mid+1;
else if (nums[mid]>target)
right=mid-1;
}
return -1;
}
}
二分法代碼模板:文章來源:http://www.zghlxwxcb.cn/news/detail-824661.html
int binarySearch(int [] nums,int target){
int left=0,right=X;//X 根據(jù)具體條件更改
while(Y){//根據(jù)具體情況設(shè)定條件
int mid=left+(right-left)/2;
if(nums[mid]==target){
....
}else if(nums[mid]<target){
left=A;//根據(jù)具體條件更改
}else if(nums[mid]>target){
right=B;//根據(jù)具體條件更改
}
}
return ....;
}
文章來源地址http://www.zghlxwxcb.cn/news/detail-824661.html
到了這里,關(guān)于初探二分法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!