Гарчиг[Нуух][Үзүүлэх]
- 1. Массивыг хэрхэн тодорхойлох вэ?
- 2. Динамик массивууд: Тэд юу вэ? Тэдгээрийг үндсэн массиваас юугаараа ялгадаг вэ?
- 3. Массив болон толь бичиг бие биенээсээ хэрхэн ялгаатай вэ?
- 4. Массивын давуу болон сул талуудын заримыг жагсаа.
- 5. “Сийрэг массив” юуг илэрхийлдэг вэ?
- 6. Та хэзээ массиваас холбосон жагсаалтыг сонгох вэ?
- 7. Индексжүүлсэн массив нь ассоциатив массиваас юугаараа ялгаатай вэ?
- 8. Heap нь эрэмбэлэгдсэн массивуудаас ямар давуу талтай вэ?
- 9. Массивын хэмжээг сөрөг гэж тодорхойлж болох уу?
- 10. 1-ээс 100 элементтэй массив дахь дутуу бүхэл тоог хэрхэн олох вэ?
- 11. Массив дахь элементийн индексийг хэрхэн олох вэ?
- 12. Массиваас тодорхой элементийг хэрхэн арилгах вэ?
- 13. Хоёр массивын тэгш байдлыг хэрхэн шалгах вэ?
- 14. Бид массивуудын талаар ярихдаа “Хэмжээ” ба “Далд тэмдэг” гэсэн хэллэгийг та юу гэж ойлгох вэ?
- Ярилцлагын асуултуудыг кодлох
- 15. Заасан нийлбэртэй хосыг массиваас хай
- 16. Шугаман хугацаатай хоёртын массив эрэмбэлэх
- 17. Массив дахь хамгийн том хоёр int үржвэрийг ол.
- 18. Массивын бүх тэгийг төгсгөл рүү хэрхэн шилжүүлэх вэ
- 19. Нэг үйлдэлд шилжсэн хоёр оруулгатай массивыг хэрхэн эрэмбэлэх вэ.
- 20. Хоёр эрэмбэлэгдсэн массивыг байранд нь хэрхэн нэгтгэх вэ.
- 21. Өндөр, бага байрлалыг ээлжлэн сольж буй массивыг хэрхэн эрэмбэлэх вэ?
- 22. Массив дахь элемент бүрийн үржвэрээр хуваах оператор ашиглахгүйгээр массивын элемент бүрийг хэрхэн орлуулах вэ?
- 23. Массив дахь хамгийн сондгой элементийг логарифмын хугацаанд ол
- 24. Дугуй массив дахь элемент бүрийн дараагийн том элементийг хэрхэн авах вэ?
- 25. Массивын урвуу тоог олоорой?
- 26. Борооны ус барих асуудал юу вэ?
- Дүгнэлт
Кодлох ярилцлага нь DSA-ийн цуврал асуултуудыг агуулдаг. Хэрэв та удахгүй болох FAANG эсвэл 1-р түвшний технологийн бизнестэй хийх технологийн ярилцлагадаа бэлдэж байгаа бол массивын талаар ур чадвартай байх ёстой.
Ихэнх кодчилолын ярилцлагад энэ нь Strings-ийн дараа хоёрдугаарт ордог. Массив гэдэг нь санах ойд бие биетэйгээ ойрхон хадгалагдсан холбогдох өгөгдлийн элементүүдийн бүлэг юм.
Тэд C, C++, Java, Python, Perl, Ruby гэх мэт бүх програмчлалын хэлнүүдтэй холбогдсон тул хаа сайгүй байдаг. Массив дээр үндэслэсэн кодчиллын зарим сорилт, ярилцлагын асуулт, хариултыг үргэлжлүүлэн уншина уу.
Python нь хэрэглэхэд хялбар, ойлгоход хялбар, бидний ихэнх нь мэддэг байх ёстой учраас энэ нийтлэлд кодчиллын асуудлыг шийдвэрлэхэд ашиглах болно.
Эхлээд үзье.
1. Массивыг хэрхэн тодорхойлох вэ?
- Холбогдох өгөгдлийн төрлүүдийн бүлэг нь массив юм.
- Массивууд үргэлж тогтмол байдаг.
- Ижил төрлийн хувьсагчийг массивын объектууд хэд хэдэн газарт хадгалдаг.
- Анхан шатны төрлүүд болон объектын лавлагаа нь үүнтэй нийцдэг.
2. Динамик массивууд: Тэд юу вэ? Тэдгээрийг үндсэн массиваас юугаараа ялгадаг вэ?
Динамик массивууд (мөн өсөх боломжтой массивууд, хэмжээг өөрчлөх массивууд, өөрчлөгдөж болох массивууд эсвэл Java дахь ArrayLists гэж нэрлэдэг) автомат масштабаар хангах нь чухал давуу тал юм.
Массив нь тогтмол хэмжээтэй байдаг тул таны массив хэдэн элемент хадгалахыг үргэлж мэдэж байх ёстой. Харин динамик массив нь нэмэлт гишүүд нэмэх тусам өсдөг тул яг хэмжээг нь урьдчилан мэдэх шаардлагагүй болно.
3. Массив болон толь бичиг бие биенээсээ хэрхэн ялгаатай вэ?
Энэ бол байнга асуудаг ярилцлагын асуултуудын үндсэн суурь юм. Дараах нь массив ба толь бичгүүдийн хоорондох үндсэн ялгаа юм.
- Массив гэдэг нь ижил төстэй зүйлсийн дараалсан жагсаалт юм. Нөгөө талаас толь бичиг нь түлхүүр-утга хостой.
- Массивын хэмжээ динамикаар өөрчлөгдөж болно. Ийм эрч хүчтэй санаанууд толь бичигт байдаггүй.
- Массивыг ашиглахын өмнө түүний хэмжээг зааж өгөх ёстой. Толь бичгийн хэмжээг өөрчлөх шаардлагагүй.
- Хэрэв та массивын хэмжээг томруулахыг хүсвэл Redim хэллэгийг ашиглана уу. Толь бичигт элементийг мэдэгдэлгүйгээр нэмж болно.
4. Массивын давуу болон сул талуудын заримыг жагсаа.
Давуу талууд:
- Массив нь хэд хэдэн элементийг нэгэн зэрэг эрэмбэлэх боломжтой.
- Бусад өгөгдлийн бүтэцСтек, дараалал, холбогдсон жагсаалт, мод, график гэх мэтийг массив хэлбэрээр хэрэгжүүлж болно.
- Массивын элементэд хүрэхийн тулд индексийг ашиглаж болно.
Сул талууд:
- Массивын хэмжээг урьдчилан зарласан байх ёстой. Массивыг зарлах мөчид бид шаардагдах хэмжээг мэдэхгүй байж магадгүй юм.
- Массивын бүтэц нь статик юм. Энэ нь массивын хэмжээ үргэлж тогтмол байдаг бөгөөд санах ойн хуваарилалтыг нэмэгдүүлэх эсвэл багасгах боломжгүй гэсэн үг юм.
5. “Сийрэг массив” юуг илэрхийлдэг вэ?
Сийрэг массив нь тэг утгатай олон оруулгатай өгөгдлийн массив юм. Үүний эсрэгээр, нягт массив нь XNUMX-ээс ялгаатай утгуудын ихэнх хэсгийг агуулна. Тоонуудыг объект болгон хувиргадаг сийрэг массивын индексүүд нь хоосон зайг агуулж болно. HashMap-тай харьцуулахад тэдгээр нь санах ойн хэмнэлттэй байдаг.
6. Та хэзээ массиваас холбосон жагсаалтыг сонгох вэ?
Массивын оронд холбосон жагсаалтыг ашиглахдаа дараахь зүйлийг анхаарч үзээрэй.
- Санамсаргүй хандахын тулд танд ямар ч элемент хэрэггүй.
- Цаг хугацааг урьдчилан таамаглах нь чухал бол жагсаалтаас тогтмол оруулах, хасах шаардлагатай.
- Тэргүүлэх дараалал үүсгэхийн тулд та жагсаалтын төвд зүйлсийг байрлуулах шаардлагатай байж магадгүй.
- Жагсаалт хэр удаан үргэлжлэхийг та мэдэхгүй. Хэрэв массивын хэмжээ ихсэх юм бол энгийн массивтай адил санах ойг дахин зарлаж, хуулбарлах ёстой.
7. Индексжүүлсэн массив нь ассоциатив массиваас юугаараа ялгаатай вэ?
Ассоциатив болон индексжүүлсэн массивуудын үндсэн ялгааг дараах хүснэгтэд жагсаав.
- Ассоциатив массивыг эрэмбэлэхийн тулд текст эсвэл тоон формат дахь түлхүүр-утгийн хосыг ашигладаг. Индексжүүлсэн массивын түлхүүрүүд бүгд тоон шинж чанартай бөгөөд түлхүүр бүр нь тодорхой утгатай холбогдсон байна.
- Ассоциатив массив дахь түлхүүр нь мөр байж болно. 0-ээс эхлэн бүхэл тоон товчлуур бүхий индексжүүлсэн массив.
- Хоёр баганатай хүснэгт нь ассоциатив массивын үйлдлийг дуурайдаг. Нэг баганатай хүснэгттэй төстэй нь индексжүүлсэн массивууд юм.
- Газрын зураг нь ассоциатив массивын төрөл юм. Индекс массив нь газрын зураг биш юм.
8. Heap нь эрэмбэлэгдсэн массивуудаас ямар давуу талтай вэ?
Эрэмбэлэгдсэн массивуудыг нуруулдан ашиглах нь цаг хугацааны үр ашигтай байх нь гол давуу тал юм. Хэдий нуруулдан ажиллах нь илүү хурдан байдаг ч массивыг эрэмбэлэх нь маш их цаг хугацаа шаарддаг. Бөөгнөрөл нь хамгийн жижиг элементийг массивыг эрэмбэлэхээс хамаагүй хурдан олж чадна.
Өгөгдсөн тооны цуглуулгыг эрэмбэлэгдсэн массив ашиглан хоёр аргын аль нэгээр байрлуулж болно. Нөгөөтэйгүүр, өгөгдсөн тооны цуглуулгын хувьд нэгээс олон боломжит овоо байж болно.
9. Массивын хэмжээг сөрөг гэж тодорхойлж болох уу?
Үгүй ээ, бид сөрөг бүхэл тоог массивын хэмжээтэй гэж тодорхойлж болохгүй. Хэрэв бид зарлавал эмхэтгэх үеийн алдаа гарахгүй. Ажиллах үед бид NegativeArraySizeException-тэй тулгарах болно.
10. 1-ээс 100 элементтэй массив дахь дутуу бүхэл тоог хэрхэн олох вэ?
Дараах функцийг ашиглан цувралын нийт дүнг тооцоолж болно: n (n + 1) / 2
Зөвхөн массив нь давхардалгүй эсвэл нэгээс олон бүхэл тоо дутуу байвал энэ функц ажиллана. Массив нь давхардсан элементүүдтэй эсэхээс үл хамааран массивыг эрэмбэлж, ижил төстэй элементүүд байгаа эсэхийг харах боломжтой.
11. Массив дахь элементийн индексийг хэрхэн олох вэ?
Элементийн индексийг шугаман эсвэл хоёртын хайлтаар олж болно. Шаардлагатай элементийн тохирохыг олох хүртэл шугаман хайлтын функц нь массив дахь элемент бүр дээр давтагдана. Энэ нь тохирох элементийг олсны дараа индексийг буцаана. Иймээс шугаман хайлтын цаг хугацааны нарийн төвөгтэй байдал нь O. (n). Эрэмбэлэгдсэн болон эрэмблэгдээгүй массив хоёулаа шугаман хайлтыг ашиглаж болно.
Интервалын медиан нь шаардлагатай элементтэй таарч, индексийг өгөх хүртэл массивыг тасралтгүй хагасаар хуваадаг хоёртын хайлтыг ашиглан массивыг эрэмбэлсэн тохиолдолд элементийн индексийг авч болно. Иймээс хоёртын хайлтын цаг хугацааны нарийн төвөгтэй байдал нь O. (log n) юм.
12. Массиваас тодорхой элементийг хэрхэн арилгах вэ?
Анхны массиваас элементүүдийг зүгээр л устгаж болохгүй, учир нь тэдгээр нь тодорхой хэмжээтэй тогтмол олонлог байдаг тул ярилцлага авагч таныг өөр арга барил санал болгож, асуултын дагуу асуудлыг шийдвэрлэхийг хүсч байна. Хамгийн сайн арга бол элементийг устгахын тулд шинэ массив үүсгэх явдал юм. Та энэ массивын эхний массивын элементүүдийг хуулбарлаж, зөвхөн устгахыг хүссэн элементээ оруулж болно.
Өөр нэг стратеги нь массив дахь зорилтот элементийг хайж олох, дараа нь зорилтот элементийн баруун талд байгаа бүх зүйлийн дарааллыг өөрчлөх явдал юм.
13. Хоёр массивын тэгш байдлыг хэрхэн шалгах вэ?
Та эхлээд өгсөн хоёр массивын уртыг шалгах хэрэгтэй. Хоёр массивын тохирох зүйлсийг урт нь тэнцүү үед харьцуулна. Хоёр массивыг тэнцүү гэж үзнэ. хэрэв захидал харилцаа бүрийн хос бүрэлдэхүүн хэсэг бүр тэнцүү байвал. Хэрэв массив нь том хэмжээтэй бол хоёр массивын тэгш байдлыг шалгахыг зөвлөдөггүй, учир нь энэ нь маш их цаг хугацаа шаарддаг. Та мөн Arrays ангилалд багтсан equals() аргыг ашиглаж болно, гэхдээ хэрэв ярилцлага авагч таныг суулгасан аргуудыг ашиглахгүйгээр хоёр массивыг харьцуулахыг хүсвэл энэ арга нь ашигтай байх болно.
14. Бид массивуудын талаар ярихдаа “Хэмжээ” ба “Далд тэмдэг” гэсэн хэллэгийг та юу гэж ойлгох вэ?
Массивын "хэмжээ" гэдэг нь гишүүн бүрийг тодорхойлоход шаардагдах индекс буюу дэд тэмдэгтүүдийн тоо юм. Дэд бичвэрүүд болон хэмжээсүүд тодорхойгүй байж магадгүй. Хэмжээ нь зөвшөөрөгдсөн түлхүүрүүдийн хүрээний тодорхойлолт, харин доод тэмдэг нь тоо юм. Массивын хэмжээс бүрт зөвхөн нэг дэд тэмдэг шаардлагатай.
Жишээлбэл, arr[10][5] массив нь хоёр хэмжээстэй. Нэг нь 10, нөгөө нь 5 размертай. Бүрэлдэхүүн хэсгүүдийг нь шийдвэрлэхийн тулд танд хоёр дэд тэмдэг хэрэгтэй. Аль аль нь 0-ээс 4-ийн хооронд байна; 0-ээс 9-ийн хооронд нэг.
Ярилцлагын асуултуудыг кодлох
15. Заасан нийлбэртэй хосыг массиваас хай
Жишээлбэл,
Орц:
- тоо = [8, 7, 2, 5, 3, 1]
- зорилтот = 10
Үр дүн:
- Хос олдсон (8, 2)
- Or
- Хос олдсон (7, 3)
Орц:
- тоо = [5, 2, 6, 8, 1, 9]
- зорилтот = 12
Үр дүн:
- Хос олдсонгүй
16. Шугаман хугацаатай хоёртын массив эрэмбэлэх
Хоёртын массивыг шугаман цаг болон тогтмол талбайд эрэмбэлэх. Гаралт нь эхлээд бүх тэгийг, дараа нь бүгдийг харуулах ёстой.
Жишээлбэл,
- Оруулах: { 1, 0, 1, 0, 1, 0, 0, 1 }
- Гаралт: { 0, 0, 0, 0, 1, 1, 1, 1 }
Шууд арга бол массивын нийт 0-ийн тоог k гэж тооцож, дараа нь массивын эхний k индексийг 0-ээр, үлдсэн индексийг 1-ээр дүүргэх явдал юм. Өөр хувилбар болгон бид массивын нийт хэдэн 1-ийг тооцоолж болно. k массив, массивын сүүлийн k индексийг 1-ээр дүүргэж, үлдсэн индексийг 0-ээр дүүргэсэн хэвээр үлдээнэ.
Өгөгдсөн арга нь O(n) цагийн нарийн төвөгтэй бөгөөд нэмэлт санах ой ашигладаггүй бөгөөд энд n нь оролтын хэмжээ юм.
17. Массив дахь хамгийн том хоёр int үржвэрийг ол.
Бүхэл тооны массив дахь хоёр тооны хамгийн том үржвэрийг ол.
Жишээ болгон 10 3 5 6 2 массивыг бод. (-10, -3) эсвэл (5, 6) хос нь хамгийн өндөр бүтээгдэхүүн юм.
Элемент бүрийн хослолыг бодож, тэдгээрийн бүтээгдэхүүнийг олж мэдэх нь тэнэг арга юм. Хэрэв одоогийн хосын бүтээгдэхүүн нь өнөөг хүртэл олж авсан хамгийн их бүтээгдэхүүнээс их байвал хамгийн их бүтээгдэхүүнийг шинэчилнэ үү. Эцсийн бүтээгдэхүүний бүрэлдэхүүн хэсгүүдийг хамгийн сүүлд хэвлэ.
Дээрх шийдэл нь n нь оролтын хэмжээ бөгөөд цаг хугацааны нарийн төвөгтэй O(n2) бөгөөд илүү зай эзэлдэггүй.
18. Массивын бүх тэгийг төгсгөл рүү хэрхэн шилжүүлэх вэ
Бүхэл тоон массив дахь бүх тэгийг төгсгөлд нь шилжүүл. Хариулт нь тогтмол зай ашиглахаас зайлсхийж, массивын бүрэлдэхүүн хэсгүүдийн харьцангуй дарааллыг хадгалах ёстой.
Оролт: {1,2,3,0,8,0,4,7}
Гаралт {1,2,3,8,4,7,0,0} байх болно
Хэрэв одоогийн элемент тэг биш бол элементийг массивын дараах боломжтой байрлалд байрлуулна. Массивын бүх зүйлийг боловсруулж дууссаны дараа үлдсэн бүх индексийг 0-ээр дүүргэ.
Өмнөх шийдэл нь цаг хугацааны нарийн төвөгтэй O(n) бөгөөд n нь оролтын хэмжээ юм.
19. Нэг үйлдэлд шилжсэн хоёр оруулгатай массивыг хэрхэн эрэмбэлэх вэ.
Хоёр сольсон зүйл болон түүний бүх элементүүдийг өсөх дарааллаар байрлуулсан массивыг шугаман хугацаанд эрэмбэл. Массив нь давхардсан зүйл агуулаагүй мэт дүр эсгэ.
Оруулга:= [1,9,3,4,7,2] эсвэл [9,3,7,2,1,4] эсвэл [2,4,1,7,3,9]
Гаралт: = [1,2,3,4,7,9]
Массив дахь хоёр дахь элементээс эхлэн элемент бүрийг өмнөхтэй нь харьцуулах зорилготой. Маргааны байрлалыг x, y гэсэн хоёр заагчийг авснаар хадгалагдана.
Өмнөх элементийн индекс рүү x-г, хэрэв эхнийх нь сүүлийнхээс том бол y-г одоогийн элементийн индекс рүү шинэчилнэ үү. Хэрэв өмнөх элемент нь одоогийн элементээс их байвал y-г одоогийн элементийн индекс рүү шинэчилнэ үү.
Эцэст нь зэргэлдээх хос элемент бүрийг боловсруулж дууссаны дараа x ба y индексийн элементүүдийг солино.
Өмнө дурьдсан арга нь n хэмжээтэй оролтын массивыг зөвхөн нэг удаа скан хийдэг тул цаг хугацааны нарийн төвөгтэй байдал нь O(n) байна. Уусмалын хувьд нэмэлт өрөө шаардлагагүй.
20. Хоёр эрэмбэлэгдсэн массивыг байранд нь хэрхэн нэгтгэх вэ.
X[] ба Y[] массивын зүйлсийг нэгтгэх - тус бүр нь m ба n хэмжээтэй хоёр эрэмбэлэгдсэн массивыг эрэмбэлэх дарааллыг хадгалах замаар, өөрөөр хэлбэл X[]-г эхний m жижиг элементээр дүүргэж, Y[]-г үлдсэн элементүүд.
Хэрэв X[] массив дахь элемент аль хэдийн зөв байрлалд (өөрөөр хэлбэл, үлдсэн элементүүдийн дундаас хамгийн бага нь) байвал түүнийг үл тоомсорло; Үгүй бол Y[]-ийн анхны гишүүн болох хамгийн жижиг элементээр солино. Солилцсоны дараа эрэмбэлэгдсэн дарааллыг хадгалахын тулд элементийг (одоо Y[0]-д байгаа) Y[] дэх зохих байршилд шилжүүлнэ.
Эхний массивын хэмжээ m, хоёр дахь массивын хэмжээ n, цаг хугацааны нарийн төвөгтэй байдал нь O(mn) байна.
21. Өндөр, бага байрлалыг ээлжлэн сольж буй массивыг хэрхэн эрэмбэлэх вэ?
Бүхэл тоон массивыг дараагийн гишүүн бүр өмнөх болон дараах элементүүдээс том байхаар дахин байрлуул. Массив ямар ч давхардсан элемент агуулаагүй гэж бодъё.
Үр дүнтэй арга барилын хувьд массивыг эрэмбэлэх эсвэл нэмэлт зай ашиглах шаардлагагүй. Төлөвлөгөө нь эхлээд массивын хоёр дахь гишүүн бөгөөд давталтын давталт бүрт хоёроор нэмэгдэнэ.
Сүүлийн элемент эхнийхээс хэтэрсэн тохиолдолд бүрэлдэхүүн хэсгүүдийг солино. Дараах элемент нь одоогийн элементээс том бол ижил төстэй байдлаар хоёр зүйлийг солино уу. Бид давталтын төгсгөлд заасан хязгаарлалтад нийцсэн хүссэн массивыг авах болно.
22. Массив дахь элемент бүрийн үржвэрээр хуваах оператор ашиглахгүйгээр массивын элемент бүрийг хэрхэн орлуулах вэ?
Хуваах оператор ашиглахгүйгээр бүхэл тооны массивын элемент бүрийг бусад бүх элементийн үржвэрээр солино.
Шугаман цаг ба тогтмол орон зайд бид энэ асуудлыг шийдвэрлэхийн тулд рекурсийг ашиглаж болно. Баруун талын дэд массив дахь элемент бүрийн үржвэрийг рекурсиваар тооцож, зүүн дэд массивын үржвэрийг функцын параметр болгон дамжуулах нь ойлголт юм.
Цагийн нарийн төвөгтэй байдал нь O(n).
23. Массив дахь хамгийн сондгой элементийг логарифмын хугацаанд ол
Нэг гишүүнээс бусад нь тэгш тоогоор тохиолдох бүхэл тоон массивыг авч үзвэл энэ нэг элемент хэдэн удаа гарч ирэхийг тодорхойлох асуудал юм. Массив дахь ижил элементүүд хос хосоороо тохиолдох ба өгөгдсөн элементийн нэг эгнээнд хоёроос илүү тохиолдол байж болохгүй бол логарифмын цаг ба тогтмол орон зайд сондгой тохиолдох элементийг ол.
XOR ажиллагаа нь шугаман хугацаанд энэ асуудлыг шийдвэрлэх боломжийг бидэнд олгодог. Зорилго нь массив дахь бүх элементийг XOR болгох явдал юм. Тэгш тохиолдох элементүүд бие биенээ цуцалсны дараа зөвхөн сондгой тохиолдох элементүүд үлдэнэ.
Энэ асуудлыг O(log(n)) хугацаанд ч шийдэж болно.
24. Дугуй массив дахь элемент бүрийн дараагийн том элементийг хэрхэн авах вэ?
Дугуй бүхэл массив дахь элемент бүрийн дараагийн том элементийг байрлуулах ёстой. Массив дахь х элементийн дараах эхний том бүхэл тоо нь тухайн элементийн дараагийн том элемент юм.
Баруунаас зүүн тийш бид массивын зүйлс дээр ажиллаж болно. Зорилго нь стек хоосон болтол эсвэл дээр нь илүү өндөр элементтэй болтол x элемент бүрийн хувьд давталт хийх явдал юм. Дараагийн том х элементийг стекийн дээд талд гарч ирэхээр тохируулна уу.
25. Массивын урвуу тоог олоорой?
Массивын нийт урвуу тоог ол. I j) ба (A[i] > A[j]) бол I j) хосыг А массивын урвуу гэж үзнэ. Бид массив дахь эдгээрийн хос бүрийг тоолох ёстой.
Түүний баруун талд түүнээс бага массивын бүх гишүүдийг тоолж, үр дүнг гаралт дээр нэмэх нь энгийн арга юм.
Энэ шийдэл нь O(n2) төвөгтэй бөгөөд n нь оролтын хэмжээ юм.
26. Борооны ус барих асуудал юу вэ?
Тус бүр нь нэг нэгжийн өргөнтэй өгөгдсөн багц бааранд баригдаж болох хамгийн их усыг олохыг "хураан барих" асуудал гэж нэрлэдэг.
Зорилго нь баар бүрийн зүүн ба баруун талд байрлуулж болох хамгийн өндөр баарыг тодорхойлох явдал юм. Зүүн ба баруун талын урд талын баарны хамгийн бага хэмжээ нь одоогийн баарны өндрөөс бага нь баар бүрийн дээд талд хадгалагдаж буй усны хэмжээ юм.
Дүгнэлт
Бусад өгөгдлийн бүтцийн сэдвүүдтэй харьцуулахад массивууд нь илүү хялбар байдаг. Массивын ярилцлагын асуултуудыг гаргахын тулд та массивын талаар үндсэн ойлголттой байх хэрэгтэй.
Массивын ярилцлагын асуултуудад амжилттай хариулахын тулд массивын үндэс, тэр дундаа массивын үйлдлүүд (массив зарлах/бүтээхээс массивын зүйлд хандах/өөрчлөх хүртэл), мөн давталт, рекурс, үндсэн оператор зэрэг програмчлалын ойлголтуудыг сайтар судалж үзэх хэрэгтэй. Асуудлыг бүрэн хүлээн зөвшөөр.
Хэрэв танд асуулт байгаа бол тодруулга авах хэрэгтэй. Асуудлыг илүү зохицуулах боломжтой хэсгүүдэд хуваах талаар бод. Програмчлал хийж эхлэхээсээ өмнө алгоритмыг санаж байгаа эсэхээ шалгаарай; Үүнийг бичих эсвэл графикаар дүрслэн харуулах. дараа нь код бичиж эхэлнэ.
хариу үлдээх