אתגר
-
אחרי שבירת ראש ארוכה (בתנאי שלא להיעזר בגוגל)
המסקנה היא שטכנית כדי לעדכן ערכים של כמה איברים אין מנוס מלהגיע למיקום של כל אחד ואחד מהם בזיכרון, לכן זה יעבוד רק אם כולם מצביעים למופע אחד ומשנים אותו, אבל אז כל האיברים שווים לאותו ערך, ואי אפשר לקרוא לזה מערך...
מה שכן יכול להיות זה לא לשנות באמת את הערכים אלא ליצור תנאי שאם משתנה X שווה Y, תחזיר לי את הערך V, ואז כשמשנים את X, כל האיברים יחזירו אותו ערך או משהו דינמי אחר בהתאם, אבל זה לא באמת משנה את הערכים של המערך בזיכרון המחשב... -
עכשיו אני רואה את השאלה ב stackoverflow
השאלה הנכונה היא איך לעדכן את כל הערכים ב O(1).
מציעים שם פיתרון עם משתנה שמכיל את הזמן של העדכון האחרון, ותנאי שבודק אם כבר עבר הזמן הזה ומחזיר את הערך ה"מעודכן", זה מימוש נחמד לאפשרות השניה שכתבתי, אבל שוב, זה לא באמת משנה את הערכים של המערך בזיכרון המחשב (חוץ משאר הבעיות שמוזכרות שם). -
הוא מבחינתי לא תשובה.
גם מבחינתי לא, זה אפילו לא טריק, פשוט רמאות
באותה מידה אפשר לכתוב בכל מקום בקוד שאחרי השעה X (או כל תנאי אחר) אל תחזיר את ערכי המערך אלא ערך Y..
אבל מה נעשה שלזה התכוון המשורר - המראיין, ומבחינתו זו התשובה הנכונה בגלל שלא אמור להיות אכפת לי איך עובד המבנה נתונים, רק שתהיה אפשרות שנקראת SetAll והיא משנה בפקודה אחת את הנתונים של המבנה