From 3096e19a2aac7ae1f3417be0f3b544665a96748d Mon Sep 17 00:00:00 2001 From: lincongcong Date: Mon, 26 Jul 2021 23:59:59 +0800 Subject: [PATCH] add lc81 code in go --- .../leetcode 81不完全有序查找目标元素(包含重复值) .md | 38 ++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) 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 +} +``` +