לעבור על מערך של 0 ו-1 ובכל שורה/עמודה שמופיע 1 להפוך את כל אותה שורה/עמודה ל-1'ים . העניין לעשות את זה תוך מעבר 1 על כל המערך.
תשובות
הוסף תשובה
|
לצפיה בתשובות
ספטמבר 2017
נתחיל לעבור על המטריצה ואין הגבלה על space complexity, ולכן אם הגענו לאיבר 1 במטריצה, נדאג לעדכן את האחדים בשורה ובעמודה המתאימים במטריצה החדשה, לאחר מכן, נסיר את השורה והעמודה המתאימים מהמטריצה הנ"ל, ונריץ שוב את האלגוריתם
סכום הספרות הינו 51, נחלק ל-3 ונקבל כי כל חלק צריך להכיל סכום של 17
קבוצה ראשונה היא 8 ו-9
קבוצה שנייה היא 5, 4, 3, 2, 1, והספרה 2 מ-12
קבוצה שלישית היא 6, 7, 10, 11 והספרה 1 מ-12
יש לך מערך עם כדורים אדומים, צהובים וירוקים. אתה צריך לסדר אותו כך שכל האדומים יהיו בהתחלה וכל הירוקים יהיו בסוף. אין לך שטח זיכרון נוסף להשתמש בו.
תשובות
הוסף תשובה
|
לצפיה בתשובות
מרץ 2017
הפתרון הנאיבי: מיון מערך כלשהו, אפשרי בnlogn כידוע.
פתרון טוב יותר - לעבור עם 3 מצביעים על המערך, אחד בהתחלה ואחד בסוף, ועוד אחד בהתחלה. עוברים עם המצביע השלישי על המערך. כל פעם שנגיע לכדור אדום - נקדם את המצביע של צד שמאל עד שלא יצביע לכדור אדום, ונחליף בניהם. אם הגענו לכדור צהוב - נמשיך הלאה. אם הגענו לכדור ירוק - נעשה את אותו דבר לצד שמאל. סה"כ עברנו על המערך לכל היותר 3 פעמים, ולכן הפתרון הוא בסיבוכיות של O(n).
אינטל הוא תאגיד בינלאומי אמריקאי, אשר ידוע בעיקר כמתכנן ויצרן של מיקרו־מעבדים (החל משנת 1971) ומתמחה במעגלים משולבים. כמו כן, אינטל מייצרת כרטיסי רשת, מערכות שבבים ללוחות אם, והתקנים אחרים.