From 56edfba99ce390fb55c972a9175b01485afea1bb Mon Sep 17 00:00:00 2001 From: "zengyu.zhan" Date: 2020年5月13日 19:28:10 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=8C=E5=88=86?= =?UTF-8?q?=E6=9F=A5=E6=89=BE=E7=9A=84=20mid=20=E5=80=BC=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- note/035/README.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/note/035/README.md b/note/035/README.md index 3b78d99f..bef53715 100644 --- a/note/035/README.md +++ b/note/035/README.md @@ -44,17 +44,26 @@ Output: 0 ```java class Solution { public int searchInsert(int[] nums, int target) { - int left = 0, right = nums.length - 1, mid = (right + left)>> 1; + int left = 0, right = nums.length - 1, mid = left + (right - left)>> 1; while (left <= right) { if (target <= nums[mid]) right = mid - 1; else left = mid + 1; - mid = (right + left)>> 1; + mid = left + (right - left)>> 1; } return left; } } ``` +mid 说明: + +有两种处理方法: +1. mid = (left + right)>> 1 +2. mid = left + (right - left)>> 1 + +在一般情况下两种都可以。 + +但是当 left 和 right 接近于 int 的最大值时,**(left + right)** 可能发生类型溢出,因此推荐用第二种方式。 ## 结语 From c20168f6b55925faebe8142efddad6b1400c0405 Mon Sep 17 00:00:00 2001 From: "zengyu.zhan" Date: 2020年5月13日 19:30:31 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=B2=97=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- note/035/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/note/035/README.md b/note/035/README.md index bef53715..9e5c3f27 100644 --- a/note/035/README.md +++ b/note/035/README.md @@ -55,8 +55,7 @@ class Solution { } ``` -mid 说明: - +**mid 说明:** 有两种处理方法: 1. mid = (left + right)>> 1 2. mid = left + (right - left)>> 1 From 0bcd16178c8d622cc33ea571f7acc3812613016d Mon Sep 17 00:00:00 2001 From: "zengyu.zhan" Date: 2020年5月13日 19:54:22 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8B=AC=E5=8F=B7?= =?UTF-8?q?=E5=BA=94=E5=AF=B9=E8=BF=90=E7=AE=97=E7=AC=A6=E4=BC=98=E5=85=88?= =?UTF-8?q?=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- note/035/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/note/035/README.md b/note/035/README.md index 9e5c3f27..9d425abf 100644 --- a/note/035/README.md +++ b/note/035/README.md @@ -44,11 +44,11 @@ Output: 0 ```java class Solution { public int searchInsert(int[] nums, int target) { - int left = 0, right = nums.length - 1, mid = left + (right - left)>> 1; + int left = 0, right = nums.length - 1, mid = left + ((right - left)>> 1); while (left <= right) { if (target <= nums[mid]) right = mid - 1; else left = mid + 1; - mid = left + (right - left)>> 1; + mid = left + ((right - left)>> 1); } return left; } @@ -58,7 +58,7 @@ class Solution { **mid 说明:** 有两种处理方法: 1. mid = (left + right)>> 1 -2. mid = left + (right - left)>> 1 +2. mid = left + ((right - left)>> 1) 在一般情况下两种都可以。

AltStyle によって変換されたページ (->オリジナル) /