ویرگول
ورودثبت نام
Mahdi Shamlou | مهدی شاملو
Mahdi Shamlou | مهدی شاملومهدی شاملو یک توسعه دهنده نرم افزار ساده 😉
Mahdi Shamlou | مهدی شاملو
Mahdi Shamlou | مهدی شاملو
خواندن ۲ دقیقه·۲ سال پیش

حل سوال اول LeetCode


سلام من مهدی شاملو هستم و در این پست میخوام روش حل سوال اول leetcode رو به اشتراک بزارم
البته که باید بدونید شما هر سوال رو به هر روشی که به بشه اون سوال رو حل کرد میتونید حل کنید و فقط یک راه برای حل وجود نداره اما این راه حل من هست
امیدوارم ازش استفاده کنید و به دردتون بخوره

class Solution(object): def twoSum(self, nums, target): dict_key = {} for i in range(0, len(nums)): target_mines = target - nums[i] try: print(dict_key[str(target_mines)]) print(i) return [dict_key[str(target_mines)], i] except: dict_key[str(nums[i])] = i

سوالی که مطرح شده این هست که در یک لیست که از اعداد پر شده چطور با داشتن یک عدد تحت عنوان تارگت بتوان دو عدد از لیست پیدا کرده که مجموع اون ها به تارگت برسه
حالا شما با چند روش میتونید این سوال رو حل کنید اما روشی که من پیاده سازی کردم این سوال رو با استفاده از یک دیکشنری حل میکنه که اردر زمانی اش بیشتر از n نباشه یعنی شما با یک بار چرخش در لیست به جواب سوال برسید
در مرحله اول یک حلقه برای چرخش در لیست نوشتم

for i in range(0, len(nums)):

در مرحله بعدی هر استپ عدد انتخاب شده از لیست رو از تارگت کم میکنم

target_mines = target - nums[i]

در مرحله بعد با یک بلاک مدیریت خطا اگر بتونم اون عدد کم شده رو در دیکشنری پیدا کنم که به جواب مسيله رسیدم

try: print(dict_key[str(target_mines)]) print(i) return [dict_key[str(target_mines)], i]

اما اگر با خطا مواجه شد ( اونجایی با خطا مواجه میشه که اون عدد کم شده رو نتونه توی دیکشنری پیدا کنه )
یک کلید با با مقدار ایندکس عدد انتخاب شده در این مرحله توی دیکشنری میسازم
و این مراحل رو تا آخر لیست تکرار میکنم

except: dict_key[str(nums[i])] = i

اگر سوالی دارید خوشحال میشم بپرسید که اگر بلد بودم بتونم کمکی کنم یا اگر به نظرتون راه حل بهتری برای حل این مسيله وجود داره خوشحال میشم داخل گیت هابم بهش اشاره کنید و کدم رو بهبود ببخشید

نویسنده : مهدی شاملو




pythonحل مسئلهیادگیری برنامه نویسی
۹
۲
Mahdi Shamlou | مهدی شاملو
Mahdi Shamlou | مهدی شاملو
مهدی شاملو یک توسعه دهنده نرم افزار ساده 😉
روزمرگی های برنامه نویسان 🌿
روزمرگی های برنامه نویسان 🌿
🟢 دوره ۱۲ قدم برنامه نویسی یکی از برترین دوره های آموزشی جهت شروع اصولی برنامه نویسی است و حدود ۵۰۰۰ شرکت کننده با ۹۹ درصد موفقیت داشته است. 🔗 https://avasam.ir/product/12-step-for-be-programmer
شاید از این پست‌ها خوشتان بیاید