פורסם 2008 במרץ 3117 שנים לא הצלחתי לפתור את השאלה הבאה בשפה C#: נתונה רשימה L של מספרים שלמים. מגדירים את רשימת המספרים העוקבים המקסימלית כרשימת המספרים העוקבים הגדולה ביותר ברשימה הנתונה L. (שני מספרים עוקבים אם המס' השני גדול מהראשון ב-1). למשל עבורהרשימה הבאה: L1=3,5,6,7,8,-1,0,1,2,3,5,6,14,1,2 תתקבל רשימת המספרים העוקבים המקסימלית הבאה: L2=-1,0,1,2,3 כתוב פעולה שתקבל כפרמטר רשימה ותחזיר רשימת המספרים העוקבים המקסימלית. אם אפשר הכוונה.תודה.
פורסם 2008 במרץ 3117 שנים קודם כל, תתחיל מלכתוב תוכנית שרק תעקוב אחרי רשימות מספרים עוקבים.עבור כל רשימה כזו, תדפיס את נקודת ההתחלה שלה, ואת גודלה.אח"כ תשתמש באלגוריתם למציאת המספר הגדול ביותר ברשימה, על מנת למצוא את הרשימה הארוכה ביותר מהרשימות הנ"ל (אתה יכול לשלב את שני האלגוריתמים ביחד, במקום ליצור רשימת ביניים).
פורסם 2008 באפריל 117 שנים אם X עוקב את Y וY עוקב את Z אז בהכרח X עוקב את Z, נכון?כלומר אתה יכול לעשות במעבר אחד את השאלה, אתה מתחיל לרוץ על הרשימה, מחפש שני איברים עוקבים, ברגע שמצאת אתה מכניס את הרשימה ומחפש אם עכשו יש עוקב, אם יש ממשיכים, אחרת נתחיל רשימה חדשה, כעת כול פעם יהיה לנו ביד שתי רשימות (אנחנו רוצים רשימה שהיא MAX באורכה), לכול רשימה נשמור משתנה שיכיל האורך שלה (אם כי לרוב זה מגיע כפונקציה בסיסית של רשימה אבל שיהיה), ברגע שעכשו יש לי שתי רשימות ושתיהין הגיעו לכדי סיום, אני שומר שוב רק את הגדולה מבינהין.זמן הריצה יהיה O של N.וכנל לגבי SPACE.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.