עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

צריך עזרה , איך הקוד הבא עובד

Featured Replies

פורסם


public static int countArray(int []_arr){
int sign=_arr[0]+1;
int count=0;
boolean found=false;
int start=_arr[0];

for (int i=1; !found; i=((i+1)%_arr.length)){
count++;
if (_arr[i]==start){
_arr[i]=sign; //mark this place
if (_arr[(i-count)%_arr.length]==_arr[i])
found=true;
else _arr[i]=sign;

}
}
return count;
}

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

: ע"מ לדעת כמה מכוניות יש בחניון (או כמה איברים יש ברשימה המקושרת/מערך) נתחיל ממכונית כל שהיא ונזכור את המספר שלה עכשיו נתחיל לספור מכוניות אם נגיע למכונית שמסומנת כמו המספר של הראשונה (שאולי זו בדיוק היא) אז נבצע שני דברים הראשון נשנה את הסימן שעל המכונית לאיזהוא מספר (flag) ונזכור את המונה עכשיו נבדוק האם כשחוזרים אחורה את מספר הצעדים שיש במונה מגיעים למכונית עם הflag אם כן אז סיימנו ומספ' המכוניות הוא כמספר שמונה. אם לא אז מבצעים שוב (עכשיו כשנגיע למכונית שנעצרנו בפעם הראשונה לא נעצר בה כי אין בה מספר כמו שיש למכונית שממנה אנו מתחילים לספור כי שינינו אותו ל-flag [כמובן שה-flag צריך להיות שונה מהמספר שיש על המכונית הראשונה]). הסיבוכיות היא O(n^2) כי במקרה בגרוע כל המכוניות מסומנות באותו סימן ולכן בכל מכונית נגיע אליה ונחזור חזרה (כלומר לכל n במכוניות נבצע בדיקה חזור של n בדיקות אחורה(

מישהו יכול להסביר לי בדיוק איך זה עושה את זה? תודה..

פורסם

מה שקורה זה הדברים הבאים:

1. ערך האיבר הראשון נשמר במשתנה start וערך האיבר השני במשתנה sign.

2. הלולאה רצה איבר איבר, כאשר i=((i+1)%_arr.length מבטיח לך שאם הגעת לסוף המערך, הצעד הבא יחזור לאיבר הראשון (האפס).

3. נעשית בדיקה של השוואת ערך האיבר הנוכחי לערך האיבר הראשון.

4. אם זה מתקיים מציבים את הערך sign באותו איבר.

5. כעת בודקים אם האיבר [(_arr[(i-count)%_arr.length שהוא למעשה האיבר הראשון שווה לאיבר הנוכחי. האיבר הנוכחי הוא בדיוק האיבר שהצבנו בו את sign בשלב 4. לכן, אם הם שווים זה אומר ששינינו למעשה את איבר 1 ואפשר להחזיר את הערך של count.

ארכיון

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

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.