اسهل فكرة حل (مش الاسرع ولا الoptimal) هي اننا نحط الرقم ده جوا ارراي الستيشن وبعدين نعمل سورت واخيرا نعمل بايناري سيرش عن الرقم بتاعنا الاساسي ونشوف الفرق بين الاندكس اللي بعده والاندكس اللي قبله ونطبع الرقم ده ,الحل ده هيبقى O(N log N) بالملاحظة ان الارراي سورتد اصلا نقدر ندخل فخطوة الباينري سيرش على طول الرقم بتاعنا نسميه ( x ) ونجيب الرقم اللي اصغر منه بالظبط سميه ( i ) بعدين نشوف الرقم اللي بعد ال i واللي هو يا اما اكبر من الرقم المطلوب بتاعنا او هو اصلا الرقم بتاعنا نسميه ( J ) بالتالي الاجابة هتبقى min(|x-a[i]|, |x-a[j]|) وممكن برضو استخدام lower bound وupperbound لتسريع الكتابة (على حسب مكتبات اللغة) الحل ده على طول هيكون O(Log N) لأننا استخدمنا باينري سيرش بما ان الارراي سورتد في فكرة مش محسوبة برضوا ان في لغات input الارراي فيها اصلا بياخد O(N) فبالتالي ايا كان الطريقة اللي استخدمناها فالحل هياخد O(N) فجميع الحالات فممكن نعمل لينير سيرش لكن ده لا بتماشى مع سياق السؤال اللي بيتطلب وقت سريع عامتا فبالتالي هيكون ده effecient لأن الحل ده هيكون O(N + LOG N) semplefied to O(N) مقارنة ب O(N + N) simplefied to O(N) الكومبلكستي فالاخر واحدة بس لازم نعمل حساب ان الكومبليكستي النهائية في وراها constants بتخليها تفرق عن الجوريزم تاني
first solution take time o(n) that is called linear search second solution take time o(log n) that is called binary search and we use second solution because the array is sorted
مشكور على المحتوى القيم مجرد معلومة لمتابعين يمكن إستعمال lower_bound lower_bound(gas.begin(), gas.end(), carPosition) و يقارن مع إلي بعدو و قبلو، أقرب إثنين و لكن فال interview فال أغلب يطلب منك إنو تكتب ال binary search بنفسك لتقيم قدرتك على فهمها
شكرا لك يا استاذ طارق على جهودك لدي سؤال من باب الفضول في مثل هذه الشركات يتم استقطاب الاشخاص الناجحين والمبدعين بغض النظر عن انتماءهم وديانتهم . لكن هل يستطيع الموظف ممارسة حريته الدينية مثلا الموظف المسلم اذا كان يصلي هل يستطيع اداء الصلاة في الشركة وهل هناك اماكن مخصصة لذلك اكرر شكري لحضرتك
هوا مش المفروض ناخد الoutput يكون ٣ إلى هوا ٤٠ مش ٣٠ لأن المنطقي أني مش هدي الوكيشن عديت عليه خلاص بأن ده هيخلي المستخدم يرجع والأفضل الوكيشن إلى هيكون على طريقه وخصوصا ان المسافه نفسها بين الاتنين
@@mohmed_raafat انا فاهمة انه مش ممنوع بس انا بتكلم بافتراض انه الرجوع هيعطله أكثر الأسهل يروح للي على الطريق يعني انا اذا بستخدم ابليكشن هعوز عالاقل يديني الtwo location للأماكن على نفس المسافه وبالنسبالي هيكون إلى على الطريق أسهل من الي لسه هرجع عشان اوصله
Great job Mohammed!! My solution in javaScript, could wrote it in another language const nearest_gas_station = (loc, carP) => { newA = loc.map(e => { a = e - carP return a < 0 ? a - (a * 2) : a }) return newA.indexOf(Math.min(...newA)) } console.log(nearest_gas_station([10, 20, 30, 40, 50], 35)) // Output 2
سلام اخي من فضلك فهمنا اصل المشكل ....لا اتقن الإنجليزية على الاطلاق ....اي أعطينا فقط امثلة بدون شرح لان الاستاذ وضع مثال واحد فقط ولم اتمكن من فهم فحوى السوال@@mohmed_raafat❤
@@Mi_St_Sm انا اشرح انت ماشي في طريق مستقيم وفي على جنب الطريق محطات بنزين وكل محطة فوقيها رقم يعني اول محطة مثلا رقمها 1 ويلي بعديها 2 وهكذا لغاية 7 يعني سبع محطات على طول الطريقة امرقمات الان انت وانت ماشي على هالطريق بتدور على محطة مثلا وليكن رقمها 3 لما مثلا توصل المحطة 2 رح تستثنيها لانها مش يلي بتدور عليها , بعديها بتوصل على محطة 3 يلي محطتك مبروك وصلت محطتك ! يعني ما رح تضلك تمشي لغاية اخر الطريق وتشوف كل المحطات لانك اساسا وجد محطتك فا ما في داعي اتعب رجليك وتعمل جهد عالفاضي وتضيع وقتك هذا باختصار شرح بسيط 🙂
طفل عندو 12 سنة وتعلم اساسيات بايتون بسهولة ويتقن اللغة الانجليزية وعند رغبة انو يتعلم دارت لكي يتخصص في برمجة اللعب. هل يجب عليه تعلم الخوارزميات واساسيات البرمجة اولا او تعلم العشوائي من الفيديوهات الاجنبية كافي؟ وفي ممكن يتعلم الاساسيات مع العلم انو ذكي في الرياضات اتمنى تجاوبني لاني اريد توجيه ابني صح وشكرا
سلام اخي من فضلك فهمنا اصل المشكل ....لا اتقن الإنجليزية على الاطلاق ....اي أعطينا فقط امثلة بدون شرح لان الاستاذ وضع مثال واحد فقط ولم اتمكن من فهم فحوى السوال@mohmed_raafat
المسأله بتقول ان انت عندك عربيه واقفه في مكان X وعندك محطات جاز في اماكن مختلفه بترتيب تصاعدي زي مثلا [40, 31, 20, 10] ف احنا عاوزين اقرب محطه بنزين للمكان اللي فيه العربيه لو X = 25 مثلا ف اقرب محطه بنزين ليها هي 20 عشان المسافه = 5 - الفكره بدل ما نعدي علي كل عنصر ف المصفوفه دي ونجيب اصغر مسافه ونخزن مكانها ودا هياخد وقت كبير خصوصا لو عدد المحطات كبيره جدا ف احنا ف كل مره هنروح للعنصر اللي ف المنتصف ونقارنه بمكان العربيه ولو العنصر دا اكبر من مكان السياره دا معناه ان كل العناصر اللي بعد العنصر دا هيكون المسافه كبيره ف هنحسب المسافه بين العربيه والعنصر دا ولو هي اقل من المسافات اللي حسبناها سابقاً معناه ان العنصر دا اقرب من كل اللي اتحسب قبل كدا بس هي دي الفكره
شاب متواضع وعنده سرعة بديهة ما شاء الله الله يبارك له ويرزقه أكبر النجاحات سلسلة قيمة بارك الله فيك استاذ طارق
محتوى فريد من نوعه على اليوتوب ❤❤
محمد رأفت عبقري ماشاءالله.
شكرا استاذ طارق علي هذه السلسلة الرائعة
اسهل فكرة حل (مش الاسرع ولا الoptimal) هي اننا نحط الرقم ده جوا ارراي الستيشن وبعدين نعمل سورت واخيرا نعمل بايناري سيرش عن الرقم بتاعنا الاساسي ونشوف الفرق بين الاندكس اللي بعده والاندكس اللي قبله ونطبع الرقم ده ,الحل ده هيبقى O(N log N)
بالملاحظة ان الارراي سورتد اصلا نقدر ندخل فخطوة الباينري سيرش على طول الرقم بتاعنا نسميه ( x ) ونجيب الرقم اللي اصغر منه بالظبط سميه ( i ) بعدين نشوف الرقم اللي بعد ال i واللي هو يا اما اكبر من الرقم المطلوب بتاعنا او هو اصلا الرقم بتاعنا نسميه ( J )
بالتالي الاجابة هتبقى min(|x-a[i]|, |x-a[j]|)
وممكن برضو استخدام lower bound وupperbound لتسريع الكتابة (على حسب مكتبات اللغة)
الحل ده على طول هيكون O(Log N) لأننا استخدمنا باينري سيرش بما ان الارراي سورتد
في فكرة مش محسوبة برضوا ان في لغات input الارراي فيها اصلا بياخد O(N) فبالتالي ايا كان الطريقة اللي استخدمناها فالحل هياخد O(N) فجميع الحالات فممكن نعمل لينير سيرش لكن ده لا بتماشى مع سياق السؤال اللي بيتطلب وقت سريع عامتا فبالتالي هيكون ده effecient لأن الحل ده هيكون
O(N + LOG N) semplefied to O(N)
مقارنة ب
O(N + N) simplefied to O(N)
الكومبلكستي فالاخر واحدة بس لازم نعمل حساب ان الكومبليكستي النهائية في وراها constants بتخليها تفرق عن الجوريزم تاني
first solution take time o(n) that is called linear search
second solution take time o(log n) that is called binary search and we use second solution because the array is sorted
ماشاءالله اداء ممتاز ♥️ و تفكيره بعدة حلول شئ ممتاز جدا اهنيه عليه 🌹 ان شاءالله نشوفه في كبرى الشركات بإذن الله 🌹
ربنا يخليك, ربنا يكتبلنا الخير ان شاء الله جميعا
بسم الله ماشاء الله عليك ي اخويا ❤ ربنا يكرمك باذن الله@@mohmed_raafat
مقابلة جميلة .. شكرا جزيلا على مجهودك مهندس طارق .. وللشاب الجميل المجتهد
المصريين توب توب ❤️
تحياتي استاذ طارق ،عندي اقتراح لنوع جديد من المقابلات اذا بدك ، انو بكون الشخص عامل مشروع كامل و يكون النقاش على البنية و كيف تم حلول المشاكل
بالتوفيق يهندسه ودائماً في نجاح يارب وربنا يزيدك من علمه يارب❤️
مشكور على المحتوى القيم
مجرد معلومة لمتابعين
يمكن إستعمال lower_bound
lower_bound(gas.begin(), gas.end(), carPosition)
و يقارن مع إلي بعدو و قبلو، أقرب إثنين
و لكن فال interview فال أغلب يطلب منك إنو تكتب ال binary search بنفسك لتقيم قدرتك على فهمها
بالظبط عشان كدا سألت ف بدايه الانترفيو لو ينفع استخدم built-in
😂
@@mohmed_raafat اكيد يعطيك الصحة 🙏
حبيت المتابعين للمبتدأين الي ما فهموش قصدك
المخبر الأقتصادي أهلا بيكم انا المخبر الاقتصادي و ده اشرف ابراهيم
الدكتوره ناسى بتمسى عليك 😂❤
جامد ي رافت❤
بالتوفيق ديما وبعد كام سنة نشوفك في فانج ان شاء الله
ما شاء الله عليه ربنا يزيدة ويوفقة
اكتررررر بدي هالمحتوى اسهر عليه ،ولو تعمل كل يوم مقابلة ما بتقصر
The best programmer in Egypt 😂❤
حلقة جميلة....وياريت نشوف زيها كتير
انا طالب software سنة رابعة لو حابب اني اشارك بالمقابلة كيف اقدم
بالتوفيق يهندسه
عاش يا رأفت ربنا يوفقك يا رب❤
جميل جدا أعجبتني فكرة هذا المحتوى. واصل 👏
شكرا بجد محتوي مفيد ❤
ماشاء الله تبارك الله بالتوفيق محمد ❤️❤️
جامد يابو رأفت من جاح ل نجاح يارب ❤
محتوى رائع وفريد ❤❤
The Best programmer in Tanta 💪
Thanks bro
باشمهندس طارق السلام عليكم.❤❤
خالص الحب والود
بإذن الله في شهر 12 عايز اعمل معاك انترفيوز
بالتوفيق بشمهندس محمد ❤
جميعا يارب
@@mohmed_raafat1:55 1:58 1:58 الظاهر آني نفسك اخجل جداً لما أكون أمام الكيمراء😂😂😂، تحية لك من مقيم في المملكة العربية السعودية
@@nifrwon فعلا لان دا يعتبر اول تجربه فالموضوع كان في توتر فالبدايه بس ان شاء الله بنتعود مع الوقت 😂
@@mohmed_raafatبالتوفيق ان شاءلله ممكن اي حساب لك علشان اتواصل معك
اتواصل معاك ازاي يا هندسة؟ @@mohmed_raafat
جميل جدا جدا جدا ❤
شكرا لك يا استاذ طارق على جهودك لدي سؤال من باب الفضول في مثل هذه الشركات يتم استقطاب الاشخاص الناجحين والمبدعين بغض النظر عن انتماءهم وديانتهم . لكن هل يستطيع الموظف ممارسة حريته الدينية مثلا الموظف المسلم اذا كان يصلي هل يستطيع اداء الصلاة في الشركة وهل هناك اماكن مخصصة لذلك اكرر شكري لحضرتك
depdens on the company in my company (in belgium) we can pray publicly we got our own place
شو صار بالفيديو تجربة الهاكاثون ؟
سجلتو بس بدي اعملو مونتاج وبنشرو قريبا ان شاء الله
فكره محتوي كويسه
We wanna someone from Morocco Please 🥰
هوا مش المفروض ناخد الoutput يكون ٣ إلى هوا ٤٠ مش ٣٠ لأن المنطقي أني مش هدي الوكيشن عديت عليه خلاص بأن ده هيخلي المستخدم يرجع والأفضل الوكيشن إلى هيكون على طريقه وخصوصا ان المسافه نفسها بين الاتنين
كلامك صح بس افتراض انه ممنوع يرجع ل ورا ف المسأله دا متقالش
@@mohmed_raafat انا فاهمة انه مش ممنوع بس انا بتكلم بافتراض انه الرجوع هيعطله أكثر الأسهل يروح للي على الطريق يعني انا اذا بستخدم ابليكشن هعوز عالاقل يديني الtwo location للأماكن على نفس المسافه وبالنسبالي هيكون إلى على الطريق أسهل من الي لسه هرجع عشان اوصله
Great job Mohammed!!
My solution in javaScript, could wrote it in another language
const nearest_gas_station = (loc, carP) => {
newA = loc.map(e => {
a = e - carP
return a < 0 ? a - (a * 2) : a
})
return newA.indexOf(Math.min(...newA))
}
console.log(nearest_gas_station([10, 20, 30, 40, 50], 35)) // Output 2
تحياتي لحضرتك أستاذ طارق 🥰 - ولكن موضوع فيديو كل شهر مش هينفع 😁😍 - عايزين فيديو كل 4 5 أيام أو أسبوع بحد أقصي.
عيوني حاضر ♥️
ما شاء الله ممكن اتواصل مع مهندس محمد؟
بعتلك ميل يا عبدالله
استاذ طارق كيف بقدر اشارك بسلسلة حاب اجرب نفسي بتعلم javascript ❤
استاذ طارق الحل صح
const locations = [18, 28, 30, 40, 50, 60];
const carPosition = 35;
// Output: 2
function findNearestGas(Locations,CarPosition){
for (var i = 0; i < Locations.length; i++) {
const Location = Locations[i];
if (Location > CarPosition) {
if ((Location - CarPosition) >= (CarPosition - Locations[i-1])) return i-1;
if ((Location - CarPosition) < (CarPosition - Locations[i-1])) return i;
}
else if (Location == CarPosition) return i;
}
return Locations.length -1;
}
كويس بس دا الحل الل تناقشنا فيه فالاول linear search
which is O(N) time
جرب binary search
سلام اخي من فضلك فهمنا اصل المشكل ....لا اتقن الإنجليزية على الاطلاق ....اي أعطينا فقط امثلة بدون شرح لان الاستاذ وضع مثال واحد فقط ولم اتمكن من فهم فحوى السوال@@mohmed_raafat❤
@@Mi_St_Sm
انا اشرح
انت ماشي في طريق مستقيم وفي على جنب الطريق محطات بنزين وكل محطة فوقيها رقم يعني اول محطة مثلا رقمها 1 ويلي بعديها 2 وهكذا لغاية 7 يعني سبع محطات على طول الطريقة امرقمات
الان انت وانت ماشي على هالطريق بتدور على محطة مثلا وليكن رقمها 3 لما مثلا توصل المحطة 2 رح تستثنيها لانها مش يلي بتدور عليها , بعديها بتوصل على محطة 3 يلي محطتك مبروك وصلت محطتك ! يعني ما رح تضلك تمشي لغاية اخر الطريق وتشوف كل المحطات لانك اساسا وجد محطتك فا ما في داعي اتعب رجليك وتعمل جهد عالفاضي وتضيع وقتك
هذا باختصار شرح بسيط 🙂
السؤال بيقول اقرب محطة ليك حسب المكان الي انت متواجد بيه @@justinimran1242
شو صار بالهاكاثون مين فاز🙃
يعني مقابله بكامل على هذي السؤال
هل الانترفيو بيمشي كدا على ارض الواقع ؟!!
يعني مناقشة و ممكن الانترفيور يساعدني في التفكير كدا ؟!!!
نعم الشركات بأمريكا بالاضافة للفانج هيك بكون الوضع، المقابل على الاغلب بساعدك اذا واجهت عقبات خلال حلك للسؤال
@@tariqelouzeh
شكرا جدا ♥️♥️♥️
ايمت فيديو الهاكاثون
سجلتو بس بدي اعملو مونتاج وبنشرو قريبا ان شاء الله
طفل عندو 12 سنة وتعلم اساسيات بايتون بسهولة ويتقن اللغة الانجليزية وعند رغبة انو يتعلم دارت لكي يتخصص في برمجة اللعب. هل يجب عليه تعلم الخوارزميات واساسيات البرمجة اولا او تعلم العشوائي من الفيديوهات الاجنبية كافي؟ وفي ممكن يتعلم الاساسيات مع العلم انو ذكي في الرياضات اتمنى تجاوبني لاني اريد توجيه ابني صح وشكرا
خليه يتعلم problem solving ويحل مسائل بسيطه كدا وبم انه بيحب الماث ف هيحب الموضوع جدا ومتستعجلش عليه خليه يفضل يحل ويشارك ف مسابقات البرمجه (IOI) وبيكون ليه مستقبل كبير ان شاء الله
والأهم من كدا انك تعلمه دينه كويس ❤
شكرا عل جوابك
شوف خريطة الطريق ل محمد ابو هدهود راح تستفيد
السلام عليكم اخى فى الله
لا تنس تعليمه الدين والأخلاق حتى لا تختفى هذه الموهبة التى رزقها الله له
والله الموفق
لازم يتعلم الاساسيات هتفيده جدا، انصحه بخارطة الطريق للاستاذ ابو هدهود هيتعلم البرمجة و الاساسيات على اصولها
ما،اخا،هل،
ودي يأبو رأفت يكينج
لا انصح ابدا بالبدايه ببايثون كمبتدئ…جافا هى الاساس و من ثم جميع اللغات…من تأسس بجافا و احترفها سيكون من السهل عليه تعلم الباقى ..شكرا
سلام اخي من فضلك فهمنا اصل المشكل ....لا اتقن الإنجليزية على الاطلاق ....اي أعطينا فقط امثلة بدون شرح لان الاستاذ وضع مثال واحد فقط ولم اتمكن من فهم فحوى السوال@mohmed_raafat
المسأله بتقول ان انت عندك عربيه واقفه في مكان X وعندك محطات جاز في اماكن مختلفه بترتيب تصاعدي
زي مثلا [40, 31, 20, 10]
ف احنا عاوزين اقرب محطه بنزين للمكان اللي فيه العربيه
لو X = 25 مثلا
ف اقرب محطه بنزين ليها هي 20 عشان المسافه = 5
- الفكره بدل ما نعدي علي كل عنصر ف المصفوفه دي ونجيب اصغر مسافه ونخزن مكانها ودا هياخد وقت كبير خصوصا لو عدد المحطات كبيره جدا
ف احنا ف كل مره هنروح للعنصر اللي ف المنتصف ونقارنه بمكان العربيه ولو العنصر دا اكبر من مكان السياره دا معناه ان كل العناصر اللي بعد العنصر دا هيكون المسافه كبيره ف هنحسب المسافه بين العربيه والعنصر دا
ولو هي اقل من المسافات اللي حسبناها سابقاً معناه ان العنصر دا اقرب من كل اللي اتحسب قبل كدا
بس هي دي الفكره
باشمهندس طارق السلام عليكم.❤❤
خالص الحب والود
بإذن الله في شهر 12 عايز اعمل معاك انترفيوز