עזרה| פעולה על רשימה ב-C# - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

עזרה| פעולה על רשימה ב-C#


DanielHatuka

Recommended Posts

לא הצלחתי לפתור את השאלה הבאה בשפה 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

כתוב פעולה שתקבל כפרמטר רשימה ותחזיר רשימת המספרים העוקבים המקסימלית.

אם אפשר הכוונה.

תודה.

קישור לתוכן
שתף באתרים אחרים

קודם כל, תתחיל מלכתוב תוכנית שרק תעקוב אחרי רשימות מספרים עוקבים.

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

אח"כ תשתמש באלגוריתם למציאת המספר הגדול ביותר ברשימה, על מנת למצוא את הרשימה הארוכה ביותר מהרשימות הנ"ל (אתה יכול לשלב את שני האלגוריתמים ביחד, במקום ליצור רשימת ביניים).

קישור לתוכן
שתף באתרים אחרים

אם X עוקב את Y וY עוקב את Z אז בהכרח X עוקב את Z, נכון?

כלומר אתה יכול לעשות במעבר אחד את השאלה, אתה מתחיל לרוץ על הרשימה, מחפש שני איברים עוקבים, ברגע שמצאת אתה מכניס את הרשימה ומחפש אם עכשו יש עוקב, אם יש ממשיכים, אחרת נתחיל רשימה חדשה, כעת כול פעם יהיה לנו ביד שתי רשימות (אנחנו רוצים רשימה שהיא MAX באורכה), לכול רשימה נשמור משתנה שיכיל האורך שלה (אם כי לרוב זה מגיע כפונקציה בסיסית של רשימה אבל שיהיה), ברגע שעכשו יש לי שתי רשימות ושתיהין הגיעו לכדי סיום, אני שומר שוב רק את הגדולה מבינהין.

זמן הריצה יהיה O של N.

וכנל לגבי SPACE.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...