最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ó)家法律
哈巴河县| 女性| 旌德县| 贞丰县| 辽阳市| 沈阳市| 台山市| 桐梓县| 仙桃市| 阿拉善右旗| 巴中市| 安平县| 五家渠市| 鸡东县| 湘乡市| 焉耆| 白玉县| 金沙县| 定兴县| 辽阳市| 阿城市| 贵港市| 突泉县| 玉屏| 鄂州市| 股票| 蓝田县| 澳门| 岳池县| 寿宁县| 卢龙县| 信丰县| 东阿县| 辽阳市| 济源市| 贵港市| 峡江县| 乌兰浩特市| 睢宁县| 大悟县| 肇庆市|