25 במאי 2017

על מתכנתים ומשרות

הרעיון לכתיבת פוסט זה עלה לי בעקבות שיחה עם חבר, סטודנט למדעי-המחשב שמתכנן לסיים את הלימודים שלו בקרוב ותוהה לגבי עתידו המקצועי.

בשיחה בינינו עלו נושאים מסויימים שאני חושב שהם משותפים להרבה סטודנטים באותו מצב ובכך יעסוק הפוסט.

14 במאי 2017

Equilibrium index on array

רמת קושי: בינוני

נתון מערך int לא ממוין, יש להדפיס את האינדקס בו סכום המספרים מימינו שווה לסכום המספרים לשמאלו.

LeetCode

דרישות:
  • יעילות זמן - n
  • יעילות מקום - 1
  • במידה וקיימים מספר אינדקסים מתאימים - יש להחזיר את הראשון

13 במאי 2017

Performance issue in Python

תכנות Python הוא נח ביסודו. מושגים כמו ניהול זיכרון, Stack overflow, או ניהול מערכים דינמיים יכולים להיות זרים למתכנתי Python.
זה לא אומר בהכרח שהם צריכים להיות לא מודעים לגמרי לעניין.

בפוסט זה ננסה להתחמק ממספר מוקשים הכוללים נוחות שימוש ב-Python שבשוטף אנחנו משתמשים בהם אבל כדי לכתוב אלגוריתם יעיל, במיוחד כאשר מדובר בסדרי נתונים מאסיביים, כדאי להמנע מהם.

3 במאי 2017

Single number on unsorted array

רמת קושי: קל

במערך מספרים לא ממוין, קיימים זוגות מספרים ומספר אחד בודד. עליך למצוא את המספר הבודד.


דרישות:
  • יעילות זמן - n
  • יעילות מקום - 1
  • המספרים במערך יהיו מסוג int

2 במאי 2017

Fizz Buzz - הצעה לפתרון

בפוסט זה נציע פתרון לבעיה שהוצגה בפוסט הקודם.

בפתרון, היה צריך לשים לב לקדימות של התנאי האחרון על פני הקודמים - אחרת הערך המוחזר לא יצא נכון.


1 במאי 2017

Fizz Buzz

רמת קושי: קל

הדפס סדרה של מספרים לפי כללי Fizz Buzz.

LeetCode

דרישות:
  • המספר המתקבל לפונקציה יהיה int גדול מאפס.
  • יש להחזיר רשימה המכילה את כל המספרים החל מ-1 לפי הכללים הבאים.
  • אם המספר מתחלק ב-3 יש להחליף אותו ב-"Fizz"
  • אם המספר מתחלק ב-5 יש להחליף אותו ב-"Buzz"
  • אם המספר מתחלק ב-3 וגם ב-5, יש להחליף אותו ב- "FizzBuzz"