五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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ó)家法律
平武县| 元谋县| 龙江县| 禄丰县| 安吉县| 通河县| 浦江县| 东丰县| 建昌县| 莒南县| 洪泽县| 治多县| 容城县| 萍乡市| 樟树市| 韶关市| 湘乡市| 岫岩| 逊克县| 韩城市| 泽库县| 新疆| 隆化县| 秀山| 同仁县| 新津县| 随州市| 安乡县| 丰县| 杭锦旗| 南雄市| 绥中县| 临安市| 故城县| 蒙城县| 固始县| 汨罗市| 乌兰察布市| 上犹县| 河东区| 成都市|