无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

力扣:二分查找

2023-03-08 19:29 作者:薄荷硬糖醬  | 我要投稿

題目:

704. 二分查找

難度簡(jiǎn)單1197收藏分享切換為英文接收動(dòng)態(tài)反饋


給定一個(gè) n 個(gè)元素有序的(升序)整型數(shù)組 nums 和一個(gè)目標(biāo)值 target? ,寫(xiě)一個(gè)函數(shù)搜索 nums 中的 target,如果目標(biāo)值存在返回下標(biāo),否則返回 -1。



示例 1:


輸入: nums = [-1,0,3,5,9,12], target = 9輸出: 4解釋: 9 出現(xiàn)在 nums 中并且下標(biāo)為 4


示例 2:


輸入: nums = [-1,0,3,5,9,12], target = 2輸出: -1解釋: 2 不存在 nums 中因此返回 -1


?


提示:


你可以假設(shè) nums 中的所有元素是不重復(fù)的。


n 將在 [1, 10000]之間。


nums 的每個(gè)元素都將在 [-9999, 9999]之間。


第一種錯(cuò)法:


class Solution {


public:


? ? int search(vector<int>& nums, int target) {


? ? ? ? ? ? int right=nums.size()-1,left=0;


? ? ? ? ? ? while(right>=left){


? ? ? ? ? ? ? ? int mid = (right+left)/2;


? ? ? ? ? ? ? ? if(nums[mid]>target){


? ? ? ? ? ? ? ? ? ? right=mid-1;


? ? ? ? ? ? ? ? }else if(nums[mid]<target){


? ? ? ? ? ? ? ? ? ? left=mid+1;


? ? ? ? ? ? ? ? }


? ? ? ? ? ? ? ? if(nums[mid]==target){


? ? ? ? ? ? ? ? ? ? return mid;


? ? ? ? ? ? ? ? }


? ? ? ? ? ? ? ? right--,left++;//這里錯(cuò)了


? ? ? ? ? ? }


? ? ? ? ? ? return -1;


? ? }


};


想著要讓right<left但是當(dāng)時(shí)沒(méi)有意識(shí)到讓right和left等于mid+1/-1就已經(jīng)慢慢趨近這個(gè)結(jié)果了


第一種對(duì)法:

class Solution {


public:


? ? int search(vector<int>& nums, int target) {


? ? ? ? ? ? int right=nums.size()-1,left=0;


? ? ? ? ? ? while(right>=left){


? ? ? ? ? ? ? ? int mid = (right+left)/2;


? ? ? ? ? ? ? ? if(nums[mid]>target){


? ? ? ? ? ? ? ? ? ? right=mid-1;


? ? ? ? ? ? ? ? }else if(nums[mid]<target){


? ? ? ? ? ? ? ? ? ? left=mid+1;


? ? ? ? ? ? ? ? }


? ? ? ? ? ? ? ? if(nums[mid]==target){


? ? ? ? ? ? ? ? ? ? return mid;


? ? ? ? ? ? ? ? }


? ? ? ? ? ? }


? ? ? ? ? ? return -1;


? ? }


};


兩邊為閉區(qū)間的寫(xiě)法:[1 2 3 4 5](像這樣)

第二種對(duì)法:

class?Solution?{

public:

????int?search(vector<int>&?nums,?int?target)?{

????????????int?right=nums.size(),left=0;

????????????while(right>left){

????????????????int?mid?=?left+((right-left)>>1);

????????????????if(nums[mid]>target){

????????????????????right=mid;

????????????????}else?if(nums[mid]<target){

????????????????????left=mid+1;

????????????????}else{

????????????????????return?mid;

????????????????}

????????????}

????????????return?-1;

????}

};

左閉右開(kāi)[1 2 3 4 5 6)的寫(xiě)法

力扣:二分查找的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
西吉县| 商洛市| 体育| 宜黄县| 睢宁县| 岢岚县| 乌鲁木齐县| 繁峙县| 东港市| 辽阳市| 西丰县| 瓦房店市| 长治县| 太湖县| 常熟市| 太和县| 大安市| 清河县| 新晃| 麟游县| 京山县| 桦甸市| 东兴市| 安阳县| 安泽县| 石阡县| 尚义县| 拉孜县| 肥城市| 新和县| 揭阳市| 保康县| 沧州市| 沈丘县| 泸水县| 凤台县| 琼结县| 新绛县| 垫江县| 曲沃县| 垦利县|