11 KiB
title | localeTitle |
---|---|
Where Do I Belong | إلى أين أنتمي |
تذكر استخدام Read-Search-Ask
إذا واجهتك مشكلة. حاول إقران البرنامج واكتب الكود الخاص بك
شرح المشكلة:
هذا يمكن أن يكون مشكلة صعبة لفهم. تحتاج إلى العثور على مكان في الصفيف يجب إدراج رقم بواسطة الأمر ، وإرجاع الفهرس حيث يجب أن تذهب.
روابط ذات صلة
تلميح: 1
أول شيء يجب فعله هو ترتيب الصفيف من الأسفل إلى الأعلى ، فقط لجعل الرمز أسهل. هذا هو المكان الذي يأتي فيه النوع ، فهو يحتاج إلى وظيفة رد اتصال حتى تضطر إلى إنشائه.
حاول أن تحل المشكلة الآن
تلميح: 2
بمجرد فرز الصفيف ، قم فقط بالتحقق من الرقم الأول الأكبر وإرجاع الفهرس.
حاول أن تحل المشكلة الآن
تلميح: 3
إذا لم يكن هناك مؤشر لهذا الرقم ، فسيتعين عليك التعامل مع هذه الحالة أيضًا.
حاول أن تحل المشكلة الآن
تنبيه المفسد!
الحل في المستقبل!
الحل الأساسي للكود:
`function getIndexToIns(arr, num) { arr.sort(function(a, b) { return a - b; });
for (var a = 0; a < arr.length; a++) { if (arr[a] >= num) return a; }
return arr.length; } `
شرح الشفرة:
- أولاً ، أقوم بتصنيف الصفيف باستخدام.
.sort(callbackFuntion)
حسب الأقل إلى الأعلى ، من اليسار إلى اليمين. - ثم أستخدم حلقة for لمقارنة العناصر الموجودة في الصفيف بدءًا من أصغرها. عندما يكون عنصر في الصفيف أكبر من الرقم الذي نقارنه ، فإننا نعيد الفهرس كعدد صحيح.
روابط ذات صلة
الحل الأساسي للكود:
`function getIndexToIns(arr, num) { // Find my place in this sorted array. var times = arr.length; // runs the for loop once for each thing in the array var count = 0; for (var i=0;i<times;i++){ if(num>arr[i]){count++;} } // counts how many array numbers are smaller than num return count; // the above equals num's position in a sorted array }
getIndexToIns([40, 60], 50); `
شرح الشفرة:
- أنا لا فرز مصفوفة إدخال arr
- أقوم بحساب عد للفرز كلما كان إدخال num أكبر من رقم إدخال arr.
- هذا الرقم يساوي ما هو موضع num في مصفوفة مرتبة.
الحل الأساسي للكود:
بواسطة HarinaPana
`function getIndexToIns(arr, num) {
arr.sort(function(a, b) { return a - b; });
var i = 0; while (num > arr[i]) { i++; }
return i; }
getIndexToIns([40, 60], 50); `
شرح الشفرة:
- فرز مجموعة موجودة.
- تكرار خلال مجموعة أثناء التحقق إذا الأسطوانات هي الأكبر.
- ستتوقف الحلقة عندما لا تكون num أكبر من i وإرجاع العنصر الأخير محددًا.
حل الشفرة المتوسطة:
بواسطة faustodc
function getIndexToIns(arr, num) { arr.push(num); arr.sort(function(a, b){return ab}); return arr.indexOf(num); }
شرح الشفرة:
- أولاً ، نضيف عدد
num
إلى الصفيف باستخدامpush()
الذي يضيفه كعنصر آخر في الصفيف. - ثم نستخدم
sort()
مع وظيفةfunction(a, b){return ab}
رد الاتصالfunction(a, b){return ab}
لفرز الأرقام بترتيب تصاعدي. - وأخيرًا ، نعيد عنوان أو فهرس
num
في الصفيف باستخدام الدالةindexOf()
.
روابط ذات صلة
حل الشفرة المتوسطة:
باستخدام .findIndex()
`function getIndexToIns(arr, num) { // sort and find right index var index = arr.sort((curr, next) => curr > next) .findIndex((currNum)=> num <= currNum); // Returns proper answer return index === -1 ? arr.length : index; }
getIndexToIns([40, 60], 500); `
شرح الشفرة:
- أولاً ، قم بفرز الصفيف بترتيب تصاعدي ، ويتم ذلك حاليًا باستخدام وظائف الصفيف للحد الأدنى من المساحة.
- بمجرد فرز المصفوفة ، نقوم مباشرة بتطبيق
.findIndex()
حيث سنقوم بمقارنة كل عنصر في المصفوفة حتى نجدnum <= currNum
حيث أن الرقم الذي نريد إدراجه هو أقل أو يساوي الرقم الحالي رقم في التكرار. - ثم نستخدم العمليات الثلاثية للتحقق مما إذا حصلنا على فهرس تم إرجاعه أو
-1
. نحصل فقط على-1
عندما لم يتم العثور على المعنى يعني عندما نحصل على خطأ بالنسبة لجميع العناصر في الصفيف ، وفي هذه الحالة ، يعني ذلك أنه يجب إدراجnum
في نهاية القائمة ومن ثمَّ ، لماذا نستخدمarr.length
.
روابط ذات صلة
الحل المتقدم للكود:
بواسطة nivrith
`function getIndexToIns(arr, num) {
return arr.concat(num).sort((a,b) => ab).indexOf(num);
}
getIndexToIns([1,3,4],2); `
شرح الشفرة:
- نستخدم تسلسل الأسلوب لاستدعاء طريقة واحدة تلو الأخرى لحل المشكلة في سطر واحد. أولاً نقوم بدمج
arr
وnum
باستدعاء طريقة arr.concat (num) - ثم نستخدم
sort()
مع وظيفة سهم الاستعادة(a, b) => return ab
لفرز الأرقام بترتيب تصاعدي - وأخيرًا ، نعيد عنوان أو فهرس
num
في الصفيف باستخدام طريقةindexOf()
روابط ذات صلة
ملاحظات للمساهمات:
- لا تقم بإضافة حلول مشابهة لأي حلول موجودة. إذا كنت تعتقد أنها مشابهة ولكن أفضل ، فحاول دمج (أو استبدال) الحل المشابه الموجود.
- أضف شرحًا لحلك.
- تصنيف الحل في واحدة من الفئات التالية - الأساسي والمتوسط والمتقدم .
- الرجاء إضافة اسم المستخدم الخاص بك فقط إذا قمت بإضافة أي محتويات رئيسية ذات صلة . ( لا تزيل أي أسماء مستخدمين حالية )
نرى
Wiki Challenge Solution Template
كمرجع.