Skip to content

Commit 98bc114

Browse files
committed
二分查找
1 parent 51545f1 commit 98bc114

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

first_position_of_target.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# -*- coding: utf-8 -*-
2+
3+
class Solution:
4+
# @param nums: The integer array
5+
# @param target: Target number to find
6+
# @return the first position of target in nums, position start from 0
7+
def binarySearch(self, nums, target):
8+
# write your code here
9+
begin, end = 0, len(nums)
10+
while begin <= end:
11+
mid = (begin + end) / 2
12+
if nums[mid] < target:
13+
begin = mid + 1
14+
elif nums[mid] > target:
15+
end = mid - 1
16+
else:
17+
# 这里其实可以用二分法继续优化!
18+
for i in xrange(mid - 1, -1, -1):
19+
if nums[i] != target:
20+
return i + 1
21+
return 0
22+
return -1

0 commit comments

Comments
 (0)