اذهب إلى المحتوى

السؤال

نشر

دي المساله 

يتم إعطاؤك عددًا صحيحًا موجبًا nnn يمثل سطح شحن بحجم n×nn \times nn×n على سفينة. يمكن لكل خلية على السطح أن تحمل حاوية واحدة بوزن مقداره بالضبط www.

ومع ذلك، يجب ألا يتجاوز الوزن الإجمالي لجميع الحاويات، في حال تم تحميلها على السطح، الحد الأقصى لقدرة تحمل السفينة maxWeight.

أعد الناتج على أنه أقصى عدد من الحاويات التي يمكن تحميلها على السفينة.

ودي الحل بتاعي 

return min(n * n, maxWeight // w)

فا ليه الذاكرة كده

Runtime
0
ms
Beats
100.00%
Analyze Complexity
Memory
12.56
MB
Beats
23.57%

 

Recommended Posts

  • 0
نشر

الاستهلاك المرتفع للذاكرة في الحل ليس بسبب الخوارزمية الخاص بك نفسها ولكن هذا غالبا بسبب طريقة قياس الذاكرة في LeetCode. 

حيث الحل الذي قدمته أنت بالفعل هو حل رياضي مباشر لا يتطلب تخزين أي هياكل بيانات إضافية القوائم أو القواميس أو غريها و لذلك فهو في الواقع موفر في الذاكرة بالفعل .

وأيضا غالبا يقوم LeetCode عند قياس الذاكرة بالإعتماد على البيئة الكاملة لتشغيل الكود وليس فقط على الذاكرة التي يستخدمها الحل الخاص بك. أى أنه يحتسب الذاكرة المستخدمة بواسطة تنفيذ الكود مثل تحميل المكتبات في بايثون و أيضا المدخلات الكبيرة التي يتم تمريرها للحل الخاص بك . وأيضا الذاكرة المؤقتة التي تستخدم أثناء الترجمة والتشغيل.

ولهذا لا داعي للقلق بشأن الذاكرة في هذا الحل لأنه بالفعل أمثل من حيث التعقيد المكاني space complexity O(1). 

  • 0
نشر

لا مشكلة في الحل، فهو الأفضل من حيث الوقت والمساحة النظرية للخوارزمية نفسها O(1) space complexity

لكن مجرد تشغيل مفسر بايثون وتحميل المكتبات الأساسية اللازمة لتشغيل الكود يستهلك قدراً معيناً من الذاكرة، وهو استهلاك أساسي لا مفر منه حتى لو كان الكود بسيطاً جداً.

وجميع الحلول الحلول الصحيحة المقدمة بلغة بايثون للمسألة ستكون لها بصمة ذاكرة متشابهة جداً، وقريبة من الحد الأدنى الذي تستهلكه بيئة بايثون.

لو أردت استهلاك أقل للذاكرة نستخدم لغة منخفضة مثل C++ وستجد أنها تستهلك 8.44 ميجابايت

class Solution {
public:
    int maxContainers(int n, int w, int maxWeight) {
        return (n*n > maxWeight/w) ? maxWeight / w : n*n;
    }
};

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...