Hey Tôi đã có câu hỏi này trong một cuộc phỏng vấn và đang tự hỏi cách tốt nhất để giải quyết nó là gì. Vì vậy, nói rằng bạn đang đưa ra một mảng đã được sắp xếp và bạn muốn tìm chỉ mục thấp nhất của một số giá trị x.tìm chỉ số thấp nhất của một giá trị đã cho trong một mảng được phân loại
Đây là một python/pseudocode của những gì tôi đã đưa ra, tôi chỉ tự hỏi nếu có một cách tốt hơn để đi về nó?
def findLowestIndex(arr, x):
index = binarySearch(0, len(arr), x)
if index != -1:
while index > 0:
if arr[index] == arr[index-1]:
index -= 1
else:
break
return index
Cảm ơn!
Tôi giả sử họ yêu cầu bạn không sử dụng '[1,2,3] .index (2)'? Nếu không, bất kỳ phương pháp có vẻ như quá mức cần thiết. –
Vâng, tôi đã có một vài ngôn ngữ khác nhau mà tôi có thể đã viết nó vào để tôi muốn một cái gì đó không cụ thể chỉ là python. Tôi sẽ tưởng tượng rằng array.index (x) chức năng được tối ưu hóa cao nhưng chức năng không thể làm cho bất kỳ giả định về trạng thái của mảng (tôi biết nó đã được sắp xếp) để tìm kiếm nhị phân có hiệu quả hơn? – mike
kiểm tra câu trả lời đầu tiên cho [câu hỏi SO này] (http://stackoverflow.com/questions/212358/binary-search-in-python) –