برنامه نویس
جمع دو عدد

سلام
بریم یک مثال باحال حل کنیم
باید یک تابع بنویسیم که ۲ تا ورودی میگیره یکی از نوع آرایه - اعداد ( nums ) و یکی از نوع عدد صحیح - هدف ( target ).
تا اینجا اوکی ولی کار تابع چیه؟
این تابع باید ۲ تا عدد در خروجی بصورت لیست بفرسته که در اصل این دو عدد آدرس ۲ عددی در لیست ورودی تابع هست که مجموع آنها برابر با target ه.
- توجه کنید که ممکنه اعداد تکراری در آرایه باشه و نباید از یک عدد دو بار استفاده بشود.
- جواب رو می توانیم به هر ترتیبی برگردانیم.
مثال ۱ :
ورودی : nums = [2,7,11,15], target = 9
خروجی : [0,1]
توضیح : nums[0] + nums[1] == 9مثال ۲ :
ورودی : nums = [3,2,4], target = 6
خروجی : [1,2]مثال :
ورودی : nums = [3,3], target = 6
خروجی : [0,1]برای حلش، میتوانیم از یک دیکشنری استفاده کنیم که شماره هر عنصر را به عنوان کلید و مقدار آن را به عنوان مکان آن در آرایه ذخیره کند.
سپس در یک حلقه، هر عنصر را از آرایه بخواند و مقدار target را ازش کم و در متغیر complement ذخیره کند.
سپس مقدار complement را به عنوان کلید در دیکشنری جستجو کند. اگر پیدا شد، برای یافتن مکان هر عنصر، مقدار مکانیشون را از دیکشنری بخواند و به عنوان جواب برگرداند.
def twoSum(nums, target):
# Create a dictionary to store the index of each number in nums
num_dict = {}
# Loop through each number in nums
for i, num in enumerate(nums):
# Check if the complement of the current number exists in num_dict
complement = target - num
if complement in num_dict:
# If it does, return the indices of the two numbers
return [num_dict[complement], i]
# If it doesn't, add the current number and its index to num_dict
num_dict[num] = iلایک یادت نره.
شاد و موفق باشی!
مطلبی دیگر در همین موضوع
کارهایی که کاتلین بهتر از جاوا انجام میدهد
مطلبی دیگر در همین موضوع
حل مشکل نمایش ساعت در دوال-بوت لینوکس و ویندوز
بر اساس علایق شما
سبک تر از سکوت