diff --git a/animation-simulation/二分查找及其变种/leetcode 81不完全有序查找目标元素(包含重复值) .md b/animation-simulation/二分查找及其变种/leetcode 81不完全有序查找目标元素(包含重复值) .md index 48622c6..bab1fee 100644 --- a/animation-simulation/二分查找及其变种/leetcode 81不完全有序查找目标元素(包含重复值) .md +++ b/animation-simulation/二分查找及其变种/leetcode 81不完全有序查找目标元素(包含重复值) .md @@ -42,10 +42,12 @@ #### **题目代码** +Java Code: + ```java class Solution { public boolean search(int[] nums, int target) { - int left = 0; + int left = 0; int right = nums.length - 1; while (left <= right) { int mid = left+((right-left)>>1); @@ -76,4 +78,38 @@ class Solution { } ``` +Go Code: + +```go +func search(nums []int, target int) bool { + left := 0 + right := len(nums) - 1 + for (left <= right) { + mid := left+((right-left)>>1) + if (nums[mid] == target) { + return true + } + if (nums[mid] == nums[left]) { + left++ + continue + } + if (nums[mid] > nums[left]) { + if (nums[mid] > target && target >= nums[left]) { + right = mid - 1 + } else if (target > nums[mid] || target < nums[left]) { + left = mid + 1 + } + + }else if (nums[mid] < nums[left]) { + if (nums[mid] < target && target <= nums[right]) { + left = mid + 1 + } else if (target < nums[mid] || target > nums[right]) { + right = mid - 1 + } + } + } + return false +} +``` +