This commit is contained in:
chefyuan 2021-03-21 13:44:19 +08:00
parent 5264f29b81
commit 52a5835d07

View File

@ -8,11 +8,11 @@
我们通过刚才的例子了解了,如果在不完全有序的数组中查找目标元素,但是我们的不完全有序数组中是不包含重复元素的,那如果我们的数组中包含重复元素我们应该怎么做呢?见下图 我们通过刚才的例子了解了,如果在不完全有序的数组中查找目标元素,但是我们的不完全有序数组中是不包含重复元素的,那如果我们的数组中包含重复元素我们应该怎么做呢?见下图
![640](https://cdn.jsdelivr.net/gh/tan45du/photobed@master/photo/640.667bvokp3980.png) ![640](https://img-blog.csdnimg.cn/img_convert/9f77a33a7ff5b3fd8bbb98d77cb8a499.png)
如上图,如果我们继续使用刚才的代码,则会报错这是为什么呢?我们来分析一下。 如上图,如果我们继续使用刚才的代码,则会报错这是为什么呢?我们来分析一下。
![640 (1)](https://cdn.jsdelivr.net/gh/tan45du/photobed@master/photo/640 (1).ue8v83e5fkg.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210321134336356.png)
所以我们需要对其进行改进,我们只需将重复元素去掉即可,当我们的 nums[left] == nums[mid] 时,让 left ++ 即可,比如 13111此时 nums[mid] == nums[left] 则 left ++,那我们此时会不会错过目标值呢其实并不会只是去掉了某些重复元素如果此时我们的目标元素是3则我们left++,之后情况就变为了上题中的情况。 所以我们需要对其进行改进,我们只需将重复元素去掉即可,当我们的 nums[left] == nums[mid] 时,让 left ++ 即可,比如 13111此时 nums[mid] == nums[left] 则 left ++,那我们此时会不会错过目标值呢其实并不会只是去掉了某些重复元素如果此时我们的目标元素是3则我们left++,之后情况就变为了上题中的情况。