לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #7  
ישן 28-01-2009, 23:19
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
בתגובה להודעה מספר 6 שנכתבה על ידי uriel_koby שמתחילה ב "יפה, זה בדיוק הבעיה! כל זה: 3..."

עדיין לא הבנתי למה לא הוספת את ה-5 לשורה הראשונה ... :/

נניח זה המערך הדו-מימדי שקיבלתי:
קוד:
1 0 2 4 7 5 3 2 1 8 13 11 9 7 2 30 28 14 12 1


למה שאני לא אספק לך תוצאה כזו:
קוד:
0 2 4 1 8 13 30

כאשר כל התשובה הנ"ל זה מערך דו-מימדי, וכל שורה בפני עצמה מייצגת מערך.

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

בכל אופן... אנסה לתת לך כיוון מחשבה למרות שאני לא בטוח שהבנתי:

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

וכן הלאה לגבי השורות האחרות.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #9  
ישן 29-01-2009, 02:46
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
בתגובה להודעה מספר 8 שנכתבה על ידי uriel_koby שמתחילה ב "תתבונן: "בסדר עולה כלומר כל..."

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

איזה מוזר , חשבתי שכתבתי תוצאה אחרת...


אוקי אז בנוגע לפיתרון:

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


אבל במקביל לנ"ל, תיצור מערך דו-מימדי (נקרא לו arr_info) בגודל מספר השורות שיש לך במערך ה-input, כאשר כל תת-מערך אצלו הוא בגודל 2 איברים - האיבר הראשון מצביע על ה-offset של המספר הראשון בסידרה, והאיבר השני מצביע על גודל הסידרה (כמה איברים מתאימים מצאת עבור שורה ספציפית, בהתאם לחוקיות הנדרשת בתרגיל).

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

עריכה:

אולי זה יעזור להבין טוב יותר:
קוד:
The input - 2 Dimensional array: 7 4 2 0 1 8 1 2 3 5 2 7 9 11 13 1 12 14 28 30 int arr_info[4]; // arr_info[/* row index */] = {/* offset */, /* series length */} arr_info[0] = {NULL, 0} // Because that there's no match in the first row arr_info[1] = {1, 3} arr_info[2] = {1, 3} arr_info[3] = {1, 3}

נערך לאחרונה ע"י dorM בתאריך 29-01-2009 בשעה 02:53.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 20:41

הדף נוצר ב 0.04 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר