From 5da89e2613958ebd2376966516f5aad366fe04dc Mon Sep 17 00:00:00 2001 From: vanyongqi <46806467+vanyongqi@users.noreply.github.com> Date: Wed, 21 Sep 2022 08:47:25 +0800 Subject: [PATCH] =?UTF-8?q?Update=200704.=E4=BA=8C=E5=88=86=E6=9F=A5?= =?UTF-8?q?=E6=89=BE.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加了C语言版本的左闭右开区间版本 --- problems/0704.二分查找.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/problems/0704.二分查找.md b/problems/0704.二分查找.md index 26d821bd..012e4066 100644 --- a/problems/0704.二分查找.md +++ b/problems/0704.二分查找.md @@ -515,7 +515,8 @@ impl Solution { ``` **C:** -```c(版本一) +``` +//C (版本一) 左闭右闭区间 [left, right] int search(int* nums, int numsSize, int target){ int left = 0; int right = numsSize-1; @@ -542,13 +543,13 @@ int search(int* nums, int numsSize, int target){ } ``` ``` -C (版本二) +C (版本二) 左闭右开区间 [left, right) int search(int* nums, int numsSize, int target){ int length = numsSize; int left = 0; - int right = length;//定义target在左闭右开的区间里,即:[left, right) + int right = length; //定义target在左闭右开的区间里,即:[left, right) int middle = 0; - while(left < right){// left == right时,区间[left, right)属于空集,所以用 < 避免该情况 + while(left < right){ // left == right时,区间[left, right)属于空集,所以用 < 避免该情况 int middle = left + (right - left) / 2; if(nums[middle] < target){ //target位于(middle , right) 中为保证集合区间的左闭右开性,可等价为[middle + 1,right) @@ -556,7 +557,7 @@ int search(int* nums, int numsSize, int target){ }else if(nums[middle] > target){ //target位于[left, middle)中 right = middle ; - }else{// nums[middle] == target ,找到目标值target + }else{ // nums[middle] == target ,找到目标值target return middle; } }