اگر هر مجموعه ای که داریم رو سورت کنیم و با دو لوپ یکبار از اخر به اول بیایم و یکبار از اول به اخر و اولین باری که به تارگت رسیدیم index مورد نظر رو سیو کنیم و در یک لیست append کنیم و در اخر اون لیست رو برگردونیم به جواب میرسیم..الان ما همچین چیزیرو در مصاحبه مطرح کنیم مشکلی هست استاد؟
ارسال نظر
سلام
خیر، مثلا چه مشکلی قراره پیش بیاد؟
سلام کد درست کار نمی کرد من یک کد دیگه از گوگل پیدا کردم که درست کار می کنه.
def SearchRange(arr, target):
upperLowerBounds = []
startIndex = 0;
endIndex = len(arr) - 1
print("endIndex", endIndex)
while (startIndex < endIndex):
midIndex = (startIndex + endIndex) // 2
print("midIndex", midIndex)
if (target <= arr[midIndex]):
endIndex = midIndex
else:
startIndex = midIndex + 1
upperLowerBounds.append(startIndex)
endIndex = len(arr) - 1
while (startIndex < endIndex):
midIndex = (startIndex + endIndex) // 2 + 1
if (target < arr[midIndex]):
endIndex = midIndex - 1
else:
startIndex = midIndex;
upperLowerBounds.append(endIndex)
return upperLowerBounds
print(SearchRange([1,5,7,8,8,8,8,8,8,9,10], 8))
ارسال نظر
سلام استاد خسته نباشید و ممنون برای دوره های بی نظیرتون
استاد تو این الگوریتمی که نوشتید اگر هدف مورد نظر هم قبل و هم بعد از میانگین اولیه باشه، خروجی جواب درستی نخواهد بود
مثل
[1,5,7,7,7,7,7,8,8,8,10]
ارسال نظر
بله من هم همین نظر رو دارم
[5,7,8,3,8,8,10]
برای آرایه بالا هم جواب نادرست می ده کلا به نظرم منطق کد درست نباشه برای این مساله
ارسال نظر