LeetCode704.ไบŒๅˆ†ๆŸฅๆ‰พ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ็ฎ€ๅ•

้—ฎ้ข˜ๆ่ฟฐ

ๅŽŸ้ข˜้“พๆŽฅ๏ผš704. ไบŒๅˆ†ๆŸฅๆ‰พ

็ป™ๅฎšไธ€ไธช n ไธชๅ…ƒ็ด ๆœ‰ๅบ็š„๏ผˆๅ‡ๅบ๏ผ‰ๆ•ดๅž‹ๆ•ฐ็ป„ nums ๅ’Œไธ€ไธช็›ฎๆ ‡ๅ€ผ target ๏ผŒๅ†™ไธ€ไธชๅ‡ฝๆ•ฐๆœ็ดข nums ไธญ็š„ target๏ผŒๅฆ‚ๆžœ็›ฎๆ ‡ๅ€ผๅญ˜ๅœจ่ฟ”ๅ›žไธ‹ๆ ‡๏ผŒๅฆๅˆ™่ฟ”ๅ›ž -1ใ€‚

็คบไพ‹ 1:

่พ“ๅ…ฅ: nums = [-1,0,3,5,9,12], target = 9
่พ“ๅ‡บ: 4
่งฃ้‡Š: 9 ๅ‡บ็Žฐๅœจ nums ไธญๅนถไธ”ไธ‹ๆ ‡ไธบ 4
Java

็คบไพ‹ 2:

่พ“ๅ…ฅ: nums = [-1,0,3,5,9,12], target = 2
่พ“ๅ‡บ: -1
่งฃ้‡Š: 2 ไธๅญ˜ๅœจ nums ไธญๅ› ๆญค่ฟ”ๅ›ž -1
Java

ไปฃ็ ๅฎž็Žฐ

Java

    public int search(int[] nums, int target) {
        // ้—ญๅŒบ้—ด
        int l = 0;
        int r = nums.length - 1;
        while( l <= r){
            int mid = l + (r - l) / 2;
            if(nums[mid] > target){
                r = mid - 1;
            } else if(nums[mid] < target){
                l = mid + 1;
            } else{
                return mid;
            }
        }

        return -1;
    }
Java

C++

class Solution {
public:
    int search(vector<int>& nums, int target) {
        // ้—ญๅŒบ้—ด
        int l = 0;
        int r = nums.size() - 1;
        while (l <= r) {
            int mid = l + (r - l) / 2;
            if (nums[mid] > target) {
                r = mid - 1;
            } else if (nums[mid] < target) {
                l = mid + 1;
            } else {
                return mid;
            }
        }
        // ๅฆ‚ๆžœๆ‰พไธๅˆฐ๏ผŒๅˆ™่ฟ”ๅ›ž -1
        return -1;
    }
};

C++

Python

class Solution:
    def search(self, nums: List[int], target: int) -> int:
        # ้—ญๅŒบ้—ด
        l = 0
        r = len(nums) - 1
        while l <= r:
            mid = l + (r - l) // 2
            if nums[mid] > target:
                r = mid - 1
            elif nums[mid] < target:
                l = mid + 1
            else:
                return mid
        # ๅฆ‚ๆžœๆ‰พไธๅˆฐ๏ผŒๅˆ™่ฟ”ๅ›ž -1
        return -1

Python

Go

func search(nums []int, target int) int {
    // ้—ญๅŒบ้—ด
    l := 0
    r := len(nums) - 1
    for l <= r {
        mid := l + (r-l)/2
        if nums[mid] > target {
            r = mid - 1
        } else if nums[mid] < target {
            l = mid + 1
        } else {
            return mid
        }
    }
    // ๅฆ‚ๆžœๆ‰พไธๅˆฐ๏ผŒๅˆ™่ฟ”ๅ›ž -1
    return -1
}

Go

ๅ‘่กจ่ฏ„่ฎบ

ๅŽๆ‰่ƒฝ่ฏ„่ฎบ