ಪರಿವಿಡಿ[ಮರೆಮಾಡಿ][ತೋರಿಸಿ]
- 1. ನೀವು ಅರೇ ಅನ್ನು ಹೇಗೆ ವ್ಯಾಖ್ಯಾನಿಸುತ್ತೀರಿ?
- 2. ಡೈನಾಮಿಕ್ ಅರೇಗಳು: ಅವು ಯಾವುವು? ಮೂಲಭೂತ ಅರೇಗಳಿಂದ ಅವುಗಳನ್ನು ಯಾವುದು ಪ್ರತ್ಯೇಕಿಸುತ್ತದೆ?
- 3. ಅರೇ ಮತ್ತು ನಿಘಂಟಿಗಳು ಒಂದಕ್ಕೊಂದು ಹೇಗೆ ಬದಲಾಗುತ್ತವೆ?
- 4. ಅರೇಗಳ ಕೆಲವು ಪ್ರಯೋಜನಗಳು ಮತ್ತು ಅನಾನುಕೂಲಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಿ.
- 5. "ಸ್ಪರ್ಸ್ ಅರೇ" ಯಾವುದನ್ನು ಉಲ್ಲೇಖಿಸುತ್ತದೆ?
- 6. ರಚನೆಯ ಮೇಲೆ ಲಿಂಕ್ ಮಾಡಲಾದ ಪಟ್ಟಿಯನ್ನು ನೀವು ಯಾವಾಗ ಆರಿಸುತ್ತೀರಿ?
- 7. ಅಸೋಸಿಯೇಟಿವ್ ಅರೇಯಿಂದ ಇಂಡೆಕ್ಸ್ ಮಾಡಿದ ಶ್ರೇಣಿಯನ್ನು ಯಾವುದು ಪ್ರತ್ಯೇಕಿಸುತ್ತದೆ?
- 8. ವಿಂಗಡಿಸಲಾದ ಅರೇಗಳಿಗಿಂತ ಹೀಪ್ ಯಾವ ಪ್ರಯೋಜನಗಳನ್ನು ಹೊಂದಿದೆ?
- 9. ನಾವು ರಚನೆಯ ಗಾತ್ರವನ್ನು ಋಣಾತ್ಮಕ ಎಂದು ವ್ಯಾಖ್ಯಾನಿಸಬಹುದೇ?
- 10. 1 ರಿಂದ 100 ಅಂಶಗಳ ಶ್ರೇಣಿಯಲ್ಲಿ ಕಾಣೆಯಾದ ಪೂರ್ಣಾಂಕವನ್ನು ನೀವು ಹೇಗೆ ಪತ್ತೆ ಮಾಡುತ್ತೀರಿ?
- 11. ರಚನೆಯಲ್ಲಿನ ಅಂಶದ ಸೂಚಿಯನ್ನು ನೀವು ಹೇಗೆ ಕಂಡುಹಿಡಿಯುತ್ತೀರಿ?
- 12. ರಚನೆಯಿಂದ ನಿರ್ದಿಷ್ಟ ಅಂಶವನ್ನು ನೀವು ಹೇಗೆ ತೊಡೆದುಹಾಕಬಹುದು?
- 13. ಎರಡು ಅರೇಗಳ ಸಮಾನತೆಯನ್ನು ಹೇಗೆ ಪರಿಶೀಲಿಸಬಹುದು?
- 14. ನಾವು ಅರೇಗಳನ್ನು ಚರ್ಚಿಸಿದಾಗ, "ಆಯಾಮ" ಮತ್ತು "ಸಬ್ಸ್ಕ್ರಿಪ್ಟ್" ಎಂಬ ಪದಗುಚ್ಛಗಳಿಂದ ನೀವು ಏನು ಅರ್ಥೈಸುತ್ತೀರಿ?
- ಕೋಡಿಂಗ್ ಸಂದರ್ಶನ ಪ್ರಶ್ನೆಗಳು
- 15. ನಿರ್ದಿಷ್ಟ ಮೊತ್ತವನ್ನು ಹೊಂದಿರುವ ಸರಣಿಯಲ್ಲಿ ಜೋಡಿಯನ್ನು ಹುಡುಕಿ
- 16. ರೇಖೀಯ ಸಮಯದೊಂದಿಗೆ ಬೈನರಿ ಅರೇ ವಿಂಗಡಣೆ
- 17. ಒಂದು ಶ್ರೇಣಿಯಲ್ಲಿ ದೊಡ್ಡ ಎರಡು-ಇಂಟ್ ಉತ್ಪನ್ನವನ್ನು ಹುಡುಕಿ.
- 18. ರಚನೆಯ ಎಲ್ಲಾ ಸೊನ್ನೆಗಳನ್ನು ಅಂತ್ಯಕ್ಕೆ ಹೇಗೆ ಬದಲಾಯಿಸುವುದು
- 19. ಒಂದು ಕಾರ್ಯಾಚರಣೆಯಲ್ಲಿ ಬದಲಾಯಿಸಲಾದ ಎರಡು ನಮೂದುಗಳೊಂದಿಗೆ ಶ್ರೇಣಿಯನ್ನು ಹೇಗೆ ವಿಂಗಡಿಸುವುದು.
- 20. ಸ್ಥಳದಲ್ಲಿ ಎರಡು ವಿಂಗಡಿಸಲಾದ ಅರೇಗಳನ್ನು ಹೇಗೆ ಸಂಯೋಜಿಸುವುದು.
- 21. ಪರ್ಯಾಯ ಉನ್ನತ ಮತ್ತು ಕಡಿಮೆ ಸ್ಥಾನಗಳಲ್ಲಿ ಐಟಂಗಳ ಶ್ರೇಣಿಯನ್ನು ಮರುಕ್ರಮಗೊಳಿಸುವುದು ಹೇಗೆ?
- 22. ರಚನೆಯಲ್ಲಿನ ಪ್ರತಿಯೊಂದು ಅಂಶದ ಉತ್ಪನ್ನದೊಂದಿಗೆ ಡಿವಿಷನ್ ಆಪರೇಟರ್ ಅನ್ನು ಬಳಸದೆಯೇ ರಚನೆಯ ಪ್ರತಿಯೊಂದು ಅಂಶವನ್ನು ಹೇಗೆ ಬದಲಿಸುವುದು?
- 23. ಲಾಗರಿಥಮಿಕ್ ಸಮಯದಲ್ಲಿ ಒಂದು ಶ್ರೇಣಿಯಲ್ಲಿ ವಿಚಿತ್ರವಾದ ಅಂಶವನ್ನು ಹುಡುಕಿ
- 24. ವೃತ್ತಾಕಾರದ ರಚನೆಯಲ್ಲಿ ಪ್ರತಿ ಅಂಶಕ್ಕೆ ನಂತರದ ದೊಡ್ಡ ಅಂಶವನ್ನು ಹೇಗೆ ಪಡೆಯುವುದು?
- 25. ರಚನೆಯ ವಿಲೋಮ ಎಣಿಕೆಯನ್ನು ಕಂಡುಹಿಡಿಯುವುದೇ?
- 26. ಮಳೆ ನೀರು ಹಿಡಿಯುವ ಸಮಸ್ಯೆ ಏನು?
- ತೀರ್ಮಾನ
ಕೋಡಿಂಗ್ ಸಂದರ್ಶನಗಳು DSA ಪ್ರಶ್ನೆಗಳ ಸರಣಿಯನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ. FAANG ಅಥವಾ ಇನ್ನೊಂದು ಶ್ರೇಣಿ-1 ಟೆಕ್ ವ್ಯವಹಾರದೊಂದಿಗೆ ನಿಮ್ಮ ಮುಂಬರುವ ಟೆಕ್ ಸಂದರ್ಶನಕ್ಕಾಗಿ ನೀವು ಸಿದ್ಧರಾಗುತ್ತಿದ್ದರೆ ನೀವು ಅರೇಗಳೊಂದಿಗೆ ಪರಿಣತರಾಗಿರಬೇಕು.
ಹೆಚ್ಚಿನ ಕೋಡಿಂಗ್ ಸಂದರ್ಶನಗಳಲ್ಲಿ, ಇದು ಸ್ಟ್ರಿಂಗ್ಸ್ಗೆ ಎರಡನೇ ಸ್ಥಾನದಲ್ಲಿ ಬರುತ್ತದೆ. ಅರೇ ಎನ್ನುವುದು ಮೆಮೊರಿಯಲ್ಲಿ ಒಂದಕ್ಕೊಂದು ಹತ್ತಿರದಲ್ಲಿ ಇರಿಸಲಾಗಿರುವ ಸಂಬಂಧಿತ ಡೇಟಾ ಅಂಶಗಳ ಗುಂಪಾಗಿದೆ.
ಸಿ, ಸಿ++, ಜಾವಾ, ಪೈಥಾನ್, ಪರ್ಲ್ ಮತ್ತು ರೂಬಿಯಂತಹ ಎಲ್ಲಾ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಿಗೆ ಅವು ಸಂಪರ್ಕಗೊಂಡಿರುವುದರಿಂದ, ಅವು ಎಲ್ಲೆಡೆ ಇರುತ್ತವೆ. ಸರಣಿಗಳ ಆಧಾರದ ಮೇಲೆ ಕೆಲವು ಅಭ್ಯಾಸ ಕೋಡಿಂಗ್ ಸವಾಲುಗಳು ಮತ್ತು ಸಂದರ್ಶನ ಪ್ರಶ್ನೆಗಳು ಮತ್ತು ಉತ್ತರಗಳಿಗಾಗಿ ಓದುವುದನ್ನು ಮುಂದುವರಿಸಿ.
ಕೋಡಿಂಗ್ ಸಮಸ್ಯೆಗಳನ್ನು ನಿಭಾಯಿಸಲು ಪೈಥಾನ್ ಅನ್ನು ಈ ಪೋಸ್ಟ್ನಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ ಏಕೆಂದರೆ ಇದು ಬಳಸಲು ಸರಳವಾಗಿದೆ, ಗ್ರಹಿಸಲು ಮತ್ತು ನಮ್ಮಲ್ಲಿ ಹೆಚ್ಚಿನವರಿಗೆ ಪರಿಚಿತವಾಗಿರಬೇಕು.
ಆರಂಭಿಸೋಣ.
1. ನೀವು ಅರೇ ಅನ್ನು ಹೇಗೆ ವ್ಯಾಖ್ಯಾನಿಸುತ್ತೀರಿ?
- ಸಂಬಂಧಿತ ಡೇಟಾ ಪ್ರಕಾರಗಳ ಗುಂಪು ಒಂದು ಶ್ರೇಣಿಯಾಗಿದೆ.
- ಅರೇಗಳು ಯಾವಾಗಲೂ ಸ್ಥಿರವಾಗಿರುತ್ತವೆ.
- ಒಂದೇ ರೀತಿಯ ವೇರಿಯಬಲ್ ಅನ್ನು ಅರೇ ಆಬ್ಜೆಕ್ಟ್ಗಳಿಂದ ಹಲವಾರು ಸ್ಥಳಗಳಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ.
- ಪ್ರಾಚೀನ ಪ್ರಕಾರಗಳು ಮತ್ತು ವಸ್ತು ಉಲ್ಲೇಖಗಳು ಎರಡೂ ಅದರೊಂದಿಗೆ ಹೊಂದಿಕೊಳ್ಳುತ್ತವೆ.
2. ಡೈನಾಮಿಕ್ ಅರೇಗಳು: ಅವು ಯಾವುವು? ಮೂಲಭೂತ ಅರೇಗಳಿಂದ ಅವುಗಳನ್ನು ಯಾವುದು ಪ್ರತ್ಯೇಕಿಸುತ್ತದೆ?
ಡೈನಾಮಿಕ್ ಅರೇಗಳು (ಗ್ರೋಯಬಲ್ ಅರೇಗಳು, ಮರುಗಾತ್ರಗೊಳಿಸಬಹುದಾದ ಅರೇಗಳು, ಬದಲಾಯಿಸಬಹುದಾದ ಅರೇಗಳು ಅಥವಾ ಜಾವಾದಲ್ಲಿ ಅರೇಲಿಸ್ಟ್ಗಳು ಎಂದೂ ಸಹ ಉಲ್ಲೇಖಿಸಲಾಗುತ್ತದೆ) ಒದಗಿಸುವ ಸ್ವಯಂಚಾಲಿತ ಸ್ಕೇಲಿಂಗ್ ಗಮನಾರ್ಹ ಪ್ರಯೋಜನವಾಗಿದೆ.
ಅರೇಗಳು ನಿಗದಿತ ಗಾತ್ರವನ್ನು ಹೊಂದಿರುವುದರಿಂದ ನಿಮ್ಮ ಅರೇ ಎಷ್ಟು ಅಂಶಗಳನ್ನು ಮುಂಚಿತವಾಗಿ ಸಂಗ್ರಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ನೀವು ಯಾವಾಗಲೂ ತಿಳಿದಿರಬೇಕು. ಮತ್ತೊಂದೆಡೆ, ನೀವು ಹೆಚ್ಚುವರಿ ಸದಸ್ಯರನ್ನು ಸೇರಿಸಿದಂತೆ ಡೈನಾಮಿಕ್ ರಚನೆಯು ಬೆಳೆಯುತ್ತದೆ, ಆದ್ದರಿಂದ ನೀವು ಅದರ ನಿಖರವಾದ ಗಾತ್ರವನ್ನು ಮೊದಲೇ ತಿಳಿದುಕೊಳ್ಳಬೇಕಾಗಿಲ್ಲ.
3. ಅರೇ ಮತ್ತು ನಿಘಂಟಿಗಳು ಒಂದಕ್ಕೊಂದು ಹೇಗೆ ಬದಲಾಗುತ್ತವೆ?
ಇದು ನಿಯಮಿತವಾಗಿ ಕೇಳಲಾಗುವ ಸಂದರ್ಶನದ ಪ್ರಶ್ನೆಗಳ ಮೂಲಭೂತ-ಆಧಾರಿತ ಶ್ರೇಣಿಯಾಗಿದೆ. ಕೆಳಗಿನವುಗಳು ಅರೇಗಳು ಮತ್ತು ನಿಘಂಟುಗಳ ನಡುವಿನ ಪ್ರಮುಖ ವ್ಯತ್ಯಾಸಗಳಾಗಿವೆ:
- ಒಂದು ಶ್ರೇಣಿಯು ಒಂದೇ ರೀತಿಯ ಐಟಂಗಳ ಆದೇಶ ಪಟ್ಟಿಯಾಗಿದೆ. ನಿಘಂಟು, ಮತ್ತೊಂದೆಡೆ, ಕೀ-ಮೌಲ್ಯದ ಜೋಡಿಗಳನ್ನು ಹೊಂದಿದೆ.
- ಅರೇ ಗಾತ್ರಗಳು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಬದಲಾಗಬಹುದು. ಇಂತಹ ಕ್ರಿಯಾಶೀಲ ವಿಚಾರಗಳು ನಿಘಂಟುಗಳಲ್ಲಿ ಇಲ್ಲ.
- ರಚನೆಯನ್ನು ಬಳಸುವ ಮೊದಲು, ಅದರ ಗಾತ್ರವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು. ನಿಘಂಟಿನ ಗಾತ್ರಗಳನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲ.
- ನೀವು ರಚನೆಯ ಗಾತ್ರವನ್ನು ವಿಸ್ತರಿಸಲು ಬಯಸಿದರೆ Redim ಹೇಳಿಕೆಯನ್ನು ಬಳಸಿ. ನಿಘಂಟುಗಳಲ್ಲಿ, ಘೋಷಣೆಯಿಲ್ಲದೆ ಒಂದು ಅಂಶವನ್ನು ಸೇರಿಸಬಹುದು.
4. ಅರೇಗಳ ಕೆಲವು ಪ್ರಯೋಜನಗಳು ಮತ್ತು ಅನಾನುಕೂಲಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಿ.
ಪ್ರಯೋಜನಗಳು:
- ಅರೇಗಳು ಹಲವಾರು ಅಂಶಗಳನ್ನು ಏಕಕಾಲದಲ್ಲಿ ವಿಂಗಡಿಸಬಹುದು.
- ಇತರೆ ಡೇಟಾ ರಚನೆಗಳು, ಸ್ಟ್ಯಾಕ್ಗಳು, ಸರತಿ ಸಾಲುಗಳು, ಲಿಂಕ್ ಮಾಡಿದ ಪಟ್ಟಿಗಳು, ಮರಗಳು, ಗ್ರಾಫ್ಗಳು, ಇತ್ಯಾದಿಗಳನ್ನು ಒಂದು ಶ್ರೇಣಿಯಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು.
- ರಚನೆಯ ಅಂಶವನ್ನು ತಲುಪಲು ಸೂಚ್ಯಂಕವನ್ನು ಬಳಸಬಹುದು.
ಅನಾನುಕೂಲಗಳು:
- ರಚನೆಯ ಗಾತ್ರವನ್ನು ಮುಂಚಿತವಾಗಿ ಘೋಷಿಸಬೇಕು. ರಚನೆಯ ಘೋಷಣೆಯ ಕ್ಷಣದಲ್ಲಿ, ನಮಗೆ ಅಗತ್ಯವಿರುವ ಗಾತ್ರದ ಬಗ್ಗೆ ನಮಗೆ ತಿಳಿದಿರುವುದಿಲ್ಲ.
- ರಚನೆಯ ರಚನೆಯು ಸ್ಥಿರವಾಗಿದೆ. ರಚನೆಯ ಗಾತ್ರವು ಯಾವಾಗಲೂ ಸ್ಥಿರವಾಗಿರುತ್ತದೆ ಮತ್ತು ಮೆಮೊರಿ ಹಂಚಿಕೆಯನ್ನು ಹೆಚ್ಚಿಸಲು ಅಥವಾ ಕಡಿಮೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ ಎಂದು ಇದು ಸೂಚಿಸುತ್ತದೆ.
5. "ಸ್ಪರ್ಸ್ ಅರೇ" ಯಾವುದನ್ನು ಉಲ್ಲೇಖಿಸುತ್ತದೆ?
ವಿರಳವಾದ ರಚನೆಯು ಡೇಟಾ ರಚನೆಯಾಗಿದ್ದು ಅದು ಶೂನ್ಯ ಮೌಲ್ಯಗಳೊಂದಿಗೆ ಬಹಳಷ್ಟು ನಮೂದುಗಳನ್ನು ಹೊಂದಿದೆ. ಇದಕ್ಕೆ ವ್ಯತಿರಿಕ್ತವಾಗಿ, ದಟ್ಟವಾದ ರಚನೆಯು ಶೂನ್ಯವಲ್ಲದ ಮೌಲ್ಯಗಳೊಂದಿಗೆ ಅದರ ಹೆಚ್ಚಿನ ಐಟಂಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ. ಸಂಖ್ಯೆಗಳನ್ನು ಆಬ್ಜೆಕ್ಟ್ಗಳಾಗಿ ಪರಿವರ್ತಿಸುವ ವಿರಳ ರಚನೆಯ ಸೂಚ್ಯಂಕಗಳು ಅಂತರವನ್ನು ಒಳಗೊಂಡಿರಬಹುದು. ಹ್ಯಾಶ್ಮ್ಯಾಪ್ಗೆ ಹೋಲಿಸಿದರೆ, ಅವು ಹೆಚ್ಚು ಮೆಮೊರಿ-ಸಮರ್ಥವಾಗಿವೆ.
6. ರಚನೆಯ ಮೇಲೆ ಲಿಂಕ್ ಮಾಡಲಾದ ಪಟ್ಟಿಯನ್ನು ನೀವು ಯಾವಾಗ ಆರಿಸುತ್ತೀರಿ?
ಅರೇಗಳ ಬದಲಿಗೆ ಲಿಂಕ್ ಮಾಡಿದ ಪಟ್ಟಿಗಳನ್ನು ಬಳಸುವಾಗ, ಪರಿಗಣಿಸಿ:
- ಯಾದೃಚ್ಛಿಕ ಪ್ರವೇಶವನ್ನು ಹೊಂದಲು ನಿಮಗೆ ಯಾವುದೇ ಅಂಶಗಳ ಅಗತ್ಯವಿಲ್ಲ.
- ತಾತ್ಕಾಲಿಕ ಭವಿಷ್ಯವು ಅತ್ಯಗತ್ಯವಾಗಿರುವಲ್ಲಿ, ನಿಮಗೆ ನಿರಂತರ-ಸಮಯದ ಅಳವಡಿಕೆಗಳು ಮತ್ತು ಪಟ್ಟಿಯಿಂದ ತೆಗೆದುಹಾಕುವಿಕೆಗಳ ಅಗತ್ಯವಿದೆ.
- ಆದ್ಯತೆಯ ಸರದಿಯನ್ನು ರಚಿಸಲು, ನೀವು ಪಟ್ಟಿಯ ಮಧ್ಯದಲ್ಲಿ ಐಟಂಗಳನ್ನು ಇರಿಸಬೇಕಾಗಬಹುದು.
- ಪಟ್ಟಿ ಎಷ್ಟು ಉದ್ದವಾಗಿದೆ ಎಂದು ನಿಮಗೆ ತಿಳಿದಿಲ್ಲ. ರಚನೆಯ ಗಾತ್ರವು ಹೆಚ್ಚಾದರೆ, ನೀವು ಮರು-ಘೋಷಣೆ ಮಾಡಬೇಕು ಮತ್ತು ಮೆಮೊರಿಯನ್ನು ನಕಲು ಮಾಡಬೇಕು, ಸರಳ ಅರೇಗಳಂತೆಯೇ.
7. ಅಸೋಸಿಯೇಟಿವ್ ಅರೇಯಿಂದ ಇಂಡೆಕ್ಸ್ ಮಾಡಿದ ಶ್ರೇಣಿಯನ್ನು ಯಾವುದು ಪ್ರತ್ಯೇಕಿಸುತ್ತದೆ?
ಸಹಾಯಕ ಮತ್ತು ಸೂಚ್ಯಂಕ ಸರಣಿಗಳ ನಡುವಿನ ಪ್ರಾಥಮಿಕ ವ್ಯತ್ಯಾಸಗಳನ್ನು ಕೆಳಗಿನ ಕೋಷ್ಟಕದಲ್ಲಿ ಪಟ್ಟಿಮಾಡಲಾಗಿದೆ.
- ಅಸೋಸಿಯೇಟಿವ್ ಅರೇ ಅನ್ನು ವಿಂಗಡಿಸಲು ಪಠ್ಯ ಅಥವಾ ಸಂಖ್ಯಾ ಸ್ವರೂಪದಲ್ಲಿ ಕೀ-ಮೌಲ್ಯದ ಜೋಡಿಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಇಂಡೆಕ್ಸ್ ಮಾಡಲಾದ ರಚನೆಯ ಕೀಗಳು ಎಲ್ಲಾ ಸಂಖ್ಯಾವಾಚಕವಾಗಿವೆ, ಮತ್ತು ಪ್ರತಿ ಕೀಲಿಯು ವಿಭಿನ್ನ ಮೌಲ್ಯಕ್ಕೆ ಸಂಪರ್ಕ ಹೊಂದಿದೆ.
- ಸಹಾಯಕ ರಚನೆಯಲ್ಲಿ, ಕೀಲಿಯು ಸ್ಟ್ರಿಂಗ್ ಆಗಿರಬಹುದು. 0 ರಿಂದ ಪ್ರಾರಂಭವಾಗುವ ಪೂರ್ಣಾಂಕ ಕೀಲಿಗಳೊಂದಿಗೆ ಸೂಚ್ಯಂಕ ರಚನೆ.
- ಎರಡು-ಕಾಲಮ್ ಕೋಷ್ಟಕವು ಸಹಾಯಕ ರಚನೆಯ ನಡವಳಿಕೆಯನ್ನು ಅನುಕರಿಸುತ್ತದೆ. ಏಕ-ಕಾಲಮ್ ಕೋಷ್ಟಕವನ್ನು ಹೋಲುವ ಅರೇಗಳು ಸೂಚ್ಯಂಕವಾಗಿದೆ.
- ನಕ್ಷೆಗಳು ಸಹಾಯಕ ರಚನೆಯ ಪ್ರಕಾರವಾಗಿದೆ. ಸೂಚ್ಯಂಕ ರಚನೆಯು ನಕ್ಷೆಯಲ್ಲ.
8. ವಿಂಗಡಿಸಲಾದ ಅರೇಗಳಿಗಿಂತ ಹೀಪ್ ಯಾವ ಪ್ರಯೋಜನಗಳನ್ನು ಹೊಂದಿದೆ?
ವಿಂಗಡಿಸಲಾದ ಅರೇಗಳ ಮೇಲೆ ಹೀಪ್ ಅನ್ನು ಬಳಸುವ ಸಮಯದ ದಕ್ಷತೆಯು ಪ್ರಮುಖ ಪ್ರಯೋಜನವಾಗಿದೆ. ರಾಶಿ ಕಾರ್ಯಾಚರಣೆಗಳು ತ್ವರಿತವಾಗಿದ್ದರೂ, ಒಂದು ಶ್ರೇಣಿಯನ್ನು ವಿಂಗಡಿಸಲು ಸಾಕಷ್ಟು ಸಮಯ ಬೇಕಾಗುತ್ತದೆ. ಒಂದು ಶ್ರೇಣಿಯನ್ನು ವಿಂಗಡಿಸಲು ಸಾಧ್ಯವಾಗುವುದಕ್ಕಿಂತ ಹೆಚ್ಚು ವೇಗವಾಗಿ ಒಂದು ರಾಶಿಯು ಚಿಕ್ಕ ಅಂಶವನ್ನು ಕಂಡುಹಿಡಿಯಬಹುದು.
ವಿಂಗಡಿಸಲಾದ ಅರೇಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸಂಖ್ಯೆಗಳ ನಿರ್ದಿಷ್ಟ ಸಂಗ್ರಹವನ್ನು ಎರಡು ವಿಧಾನಗಳಲ್ಲಿ ಒಂದನ್ನು ಜೋಡಿಸಬಹುದು. ಮತ್ತೊಂದೆಡೆ, ನೀಡಿದ ಸಂಖ್ಯೆಗಳ ಸಂಗ್ರಹಕ್ಕಾಗಿ, ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಸಂಭಾವ್ಯ ರಾಶಿ ಇರಬಹುದು.
9. ನಾವು ರಚನೆಯ ಗಾತ್ರವನ್ನು ಋಣಾತ್ಮಕ ಎಂದು ವ್ಯಾಖ್ಯಾನಿಸಬಹುದೇ?
ಇಲ್ಲ, ನಾವು ಋಣಾತ್ಮಕ ಪೂರ್ಣಾಂಕವನ್ನು ರಚನೆಯ ಗಾತ್ರ ಎಂದು ವ್ಯಾಖ್ಯಾನಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ನಾವು ಘೋಷಿಸಿದರೆ ಕಂಪೈಲ್-ಸಮಯದ ದೋಷವಿರುವುದಿಲ್ಲ. ಚಾಲನಾಸಮಯದಲ್ಲಿ, ನಾವು, ಆದಾಗ್ಯೂ, NegativeArraySizeException ಅನ್ನು ಎದುರಿಸುತ್ತೇವೆ.
10. 1 ರಿಂದ 100 ಅಂಶಗಳ ಶ್ರೇಣಿಯಲ್ಲಿ ಕಾಣೆಯಾದ ಪೂರ್ಣಾಂಕವನ್ನು ನೀವು ಹೇಗೆ ಪತ್ತೆ ಮಾಡುತ್ತೀರಿ?
ಕೆಳಗಿನ ಕಾರ್ಯವನ್ನು ಅನ್ವಯಿಸುವ ಮೂಲಕ ಸರಣಿಯ ಒಟ್ಟು ಮೊತ್ತವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಬಹುದು: n (n + 1) / 2
ರಚನೆಯು ಯಾವುದೇ ನಕಲುಗಳನ್ನು ಹೊಂದಿಲ್ಲದಿದ್ದರೆ ಅಥವಾ ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಪೂರ್ಣಾಂಕಗಳನ್ನು ಕಳೆದುಕೊಂಡಿದ್ದರೆ ಮಾತ್ರ ಈ ಕಾರ್ಯವು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಒಂದು ಶ್ರೇಣಿಯು ನಕಲಿ ಅಂಶಗಳನ್ನು ಹೊಂದಿದ್ದರೂ, ಸಮಾನವಾಗಿರುವ ಯಾವುದೇ ಅಂಶಗಳಿವೆಯೇ ಎಂದು ನೋಡಲು ನೀವು ಶ್ರೇಣಿಯನ್ನು ವಿಂಗಡಿಸಬಹುದು.
11. ರಚನೆಯಲ್ಲಿನ ಅಂಶದ ಸೂಚಿಯನ್ನು ನೀವು ಹೇಗೆ ಕಂಡುಹಿಡಿಯುತ್ತೀರಿ?
ಒಂದು ಅಂಶದ ಸೂಚಿಯನ್ನು ರೇಖೀಯ ಅಥವಾ ಬೈನರಿ ಹುಡುಕಾಟದ ಮೂಲಕ ಕಂಡುಹಿಡಿಯಬಹುದು. ಇದು ಅಗತ್ಯವಿರುವ ಅಂಶದ ಹೊಂದಾಣಿಕೆಯನ್ನು ಕಂಡುಹಿಡಿಯುವವರೆಗೆ, ಒಂದು ರೇಖಾತ್ಮಕ ಹುಡುಕಾಟ ಕಾರ್ಯವು ರಚನೆಯಲ್ಲಿನ ಪ್ರತಿಯೊಂದು ಅಂಶದ ಮೇಲೆ ಲೂಪ್ ಆಗುತ್ತದೆ. ಹೊಂದಾಣಿಕೆಯ ಅಂಶವನ್ನು ಪತ್ತೆ ಮಾಡಿದ ನಂತರ ಅದು ಸೂಚ್ಯಂಕವನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ. ಪರಿಣಾಮವಾಗಿ, ರೇಖೀಯ ಹುಡುಕಾಟದ ತಾತ್ಕಾಲಿಕ ಸಂಕೀರ್ಣತೆಯು O. (n) ಆಗಿದೆ. ವಿಂಗಡಿಸಲಾದ ಮತ್ತು ವಿಂಗಡಿಸದ ರಚನೆಗಳೆರಡೂ ರೇಖೀಯ ಹುಡುಕಾಟವನ್ನು ಬಳಸಬಹುದು.
ಮಧ್ಯಂತರ ಮಧ್ಯಂತರವು ಅಗತ್ಯವಿರುವ ಅಂಶಕ್ಕೆ ಹೊಂದಿಕೆಯಾಗುವವರೆಗೆ ಮತ್ತು ಸೂಚ್ಯಂಕವನ್ನು ಒದಗಿಸುವವರೆಗೆ ಸರಣಿಯನ್ನು ನಿರಂತರವಾಗಿ ಅರ್ಧದಲ್ಲಿ ವಿಭಜಿಸುವ ಬೈನರಿ ಹುಡುಕಾಟವನ್ನು ಬಳಸಿ, ರಚನೆಯನ್ನು ವಿಂಗಡಿಸಿದರೆ ನೀವು ಅಂಶದ ಸೂಚಿಯನ್ನು ಪಡೆಯಬಹುದು. ಪರಿಣಾಮವಾಗಿ, ಬೈನರಿ ಹುಡುಕಾಟದ ತಾತ್ಕಾಲಿಕ ಸಂಕೀರ್ಣತೆಯು O. (ಲಾಗ್ n) ಆಗಿದೆ.
12. ರಚನೆಯಿಂದ ನಿರ್ದಿಷ್ಟ ಅಂಶವನ್ನು ನೀವು ಹೇಗೆ ತೊಡೆದುಹಾಕಬಹುದು?
ಮೂಲ ರಚನೆಯಿಂದ ಅಂಶಗಳನ್ನು ನೀವು ಸರಳವಾಗಿ ಅಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲದ ಕಾರಣ ಅವುಗಳು ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಗಾತ್ರದೊಂದಿಗೆ ಸ್ಥಿರವಾದ ಸೆಟ್ಗಳಾಗಿರುವುದರಿಂದ, ಸಂದರ್ಶಕರು ನಿಮಗೆ ವಿಭಿನ್ನ ವಿಧಾನವನ್ನು ಸೂಚಿಸಲು ಮತ್ತು ಪ್ರಶ್ನೆ ಎತ್ತುವ ಸಮಸ್ಯೆಯನ್ನು ನಿಭಾಯಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದಾರೆ. ಒಂದು ಅಂಶವನ್ನು ಅಳಿಸಲು ಹೊಸ ಶ್ರೇಣಿಯನ್ನು ಮಾಡುವುದು ಉತ್ತಮ ಕ್ರಮವಾಗಿದೆ. ಈ ರಚನೆಯಲ್ಲಿನ ಮೊದಲ ರಚನೆಯಿಂದ ನೀವು ಅಂಶಗಳನ್ನು ನಕಲು ಮಾಡಬಹುದು ಮತ್ತು ನೀವು ಅಳಿಸಲು ಬಯಸುವ ಅಂಶವನ್ನು ಮಾತ್ರ ಸೇರಿಸಿಕೊಳ್ಳಬಹುದು.
ಮತ್ತೊಂದು ತಂತ್ರವು ರಚನೆಯಲ್ಲಿ ಗುರಿ ಅಂಶವನ್ನು ಕಂಡುಹಿಡಿಯುವುದು ಮತ್ತು ಗುರಿ ಅಂಶದ ಬಲಭಾಗದಲ್ಲಿರುವ ಎಲ್ಲಾ ಐಟಂಗಳ ಕ್ರಮವನ್ನು ಹಿಮ್ಮುಖಗೊಳಿಸುವುದನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ.
13. ಎರಡು ಅರೇಗಳ ಸಮಾನತೆಯನ್ನು ಹೇಗೆ ಪರಿಶೀಲಿಸಬಹುದು?
ಒದಗಿಸಿದ ಎರಡು ಸರಣಿಗಳ ಉದ್ದವನ್ನು ನೀವು ಮೊದಲು ಪರಿಶೀಲಿಸಬೇಕು. ಎರಡೂ ಸರಣಿಗಳ ಹೊಂದಾಣಿಕೆಯ ಐಟಂಗಳನ್ನು ಅವುಗಳ ಉದ್ದಗಳು ಸಮಾನವಾಗಿದ್ದಾಗ ಹೋಲಿಸಲಾಗುತ್ತದೆ. ಎರಡು ಸರಣಿಗಳನ್ನು ಸಮಾನವಾಗಿ ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ. ಪ್ರತಿ ಪತ್ರವ್ಯವಹಾರದಲ್ಲಿ ಪ್ರತಿಯೊಂದು ಜೋಡಿ ಘಟಕಗಳು ಸಮಾನವಾಗಿದ್ದರೆ. ಅರೇಗಳು ಗಾತ್ರದಲ್ಲಿ ದೊಡ್ಡದಾಗಿದ್ದರೆ ಎರಡು ಸರಣಿಗಳ ಸಮಾನತೆಯನ್ನು ಪರೀಕ್ಷಿಸಲು ಈ ವಿಧಾನವನ್ನು ಶಿಫಾರಸು ಮಾಡುವುದಿಲ್ಲ ಏಕೆಂದರೆ ಇದು ಸಾಕಷ್ಟು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ನೀವು Arrays ವರ್ಗದಲ್ಲಿ ಸೇರಿಸಲಾದ ಸಮಾನ () ವಿಧಾನವನ್ನು ಸಹ ಬಳಸಬಹುದು, ಆದಾಗ್ಯೂ, ಅಂತರ್ನಿರ್ಮಿತ ವಿಧಾನಗಳನ್ನು ಬಳಸದೆಯೇ ಎರಡು ಸರಣಿಗಳನ್ನು ಹೋಲಿಸಲು ಸಂದರ್ಶಕರು ನಿಮ್ಮನ್ನು ಕೇಳಿದರೆ, ಈ ವಿಧಾನವು ಉಪಯುಕ್ತವಾಗಿರುತ್ತದೆ.
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 ಸೂಚ್ಯಂಕಗಳನ್ನು 0s ಮತ್ತು ಉಳಿದ ಸೂಚ್ಯಂಕಗಳನ್ನು 1 ನೊಂದಿಗೆ ತುಂಬುವುದು. ಪರ್ಯಾಯವಾಗಿ, ನಾವು ಒಟ್ಟು 1 ಗಳು ಎಷ್ಟು ಎಂದು ಲೆಕ್ಕ ಹಾಕಬಹುದು array k, ಸರಣಿಯಲ್ಲಿನ ಕೊನೆಯ k ಸೂಚ್ಯಂಕಗಳನ್ನು 1 ನೊಂದಿಗೆ ತುಂಬಿಸಿ ಮತ್ತು 0 ಯಿಂದ ತುಂಬಿದ ಉಳಿದ ಸೂಚ್ಯಂಕಗಳನ್ನು ಬಿಡಿ.
ನೀಡಿರುವ ವಿಧಾನವು O(n) ಸಮಯದ ಸಂಕೀರ್ಣತೆಯನ್ನು ಹೊಂದಿದೆ ಮತ್ತು ಯಾವುದೇ ಹೆಚ್ಚುವರಿ ಸಂಗ್ರಹಣೆಯನ್ನು ಬಳಸುವುದಿಲ್ಲ, ಇಲ್ಲಿ n ಎಂಬುದು ಇನ್ಪುಟ್ನ ಗಾತ್ರವಾಗಿದೆ.
17. ಒಂದು ಶ್ರೇಣಿಯಲ್ಲಿ ದೊಡ್ಡ ಎರಡು-ಇಂಟ್ ಉತ್ಪನ್ನವನ್ನು ಹುಡುಕಿ.
ಪೂರ್ಣಾಂಕ ಶ್ರೇಣಿಯಲ್ಲಿ ಎರಡು ಸಂಖ್ಯೆಗಳ ದೊಡ್ಡ ಉತ್ಪನ್ನವನ್ನು ಹುಡುಕಿ.
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 ಅಂಶದ ನಂತರದ ಮೊದಲ ದೊಡ್ಡ ಪೂರ್ಣಾಂಕವು ಆ ಅಂಶದ ನಂತರದ ಹೆಚ್ಚಿನ ಅಂಶವಾಗಿದೆ.
ಬಲದಿಂದ ಎಡಕ್ಕೆ, ನಾವು ರಚನೆಯ ಐಟಂಗಳ ಮೇಲೆ ಕಾರ್ಯನಿರ್ವಹಿಸಬಹುದು. ಸ್ಟಾಕ್ ಖಾಲಿಯಾಗುವವರೆಗೆ ಅಥವಾ ನಾವು ಅದರ ಮೇಲೆ ಹೆಚ್ಚಿನ ಅಂಶವನ್ನು ಹೊಂದುವವರೆಗೆ ಪ್ರತಿ ಎಲಿಮೆಂಟ್ x ಗೆ ಲೂಪ್ ಮಾಡುವುದು ಗುರಿಯಾಗಿದೆ. x ನ ಮುಂದಿನ ದೊಡ್ಡ ಅಂಶವನ್ನು ಸ್ಟಾಕ್ ಮಾಡಿದಾಗ ಅದರ ಮೇಲೆ ಕಾಣಿಸಿಕೊಳ್ಳುವಂತೆ ಹೊಂದಿಸಿ.
25. ರಚನೆಯ ವಿಲೋಮ ಎಣಿಕೆಯನ್ನು ಕಂಡುಹಿಡಿಯುವುದೇ?
ರಚನೆಯ ಒಟ್ಟು ವಿಲೋಮಗಳ ಸಂಖ್ಯೆಯನ್ನು ಕಂಡುಹಿಡಿಯಿರಿ. I j) ಮತ್ತು (A[i] > A[j]) ಒಂದು ಶ್ರೇಣಿಯ A ಯ ವಿಲೋಮ ಎಂದು ಜೋಡಿ I j) ಅನ್ನು ಉಲ್ಲೇಖಿಸಲಾಗುತ್ತದೆ. ನಾವು ರಚನೆಯಲ್ಲಿ ಇವುಗಳ ಪ್ರತಿಯೊಂದು ಜೋಡಿಯನ್ನು ಎಣಿಸಬೇಕು.
ಅದಕ್ಕಿಂತ ಕಡಿಮೆ ಇರುವ ಎಲ್ಲಾ ಅರೇ ಸದಸ್ಯರನ್ನು ಅದರ ಬಲಕ್ಕೆ ಎಣಿಸುವುದು ಮತ್ತು ಫಲಿತಾಂಶವನ್ನು ಔಟ್ಪುಟ್ಗೆ ಸೇರಿಸುವುದು ನೇರವಾದ ವಿಧಾನವಾಗಿದೆ.
ಈ ಪರಿಹಾರವು O(n2) ಸಂಕೀರ್ಣತೆಯನ್ನು ಹೊಂದಿದೆ, ಇಲ್ಲಿ n ಎಂಬುದು ಇನ್ಪುಟ್ನ ಗಾತ್ರವಾಗಿದೆ.
26. ಮಳೆ ನೀರು ಹಿಡಿಯುವ ಸಮಸ್ಯೆ ಏನು?
ಪ್ರತಿ ಒಂದು ಘಟಕದ ಅಗಲವಿರುವ ಬಾರ್ಗಳ ನಿರ್ದಿಷ್ಟ ಸೆಟ್ನಲ್ಲಿ ಸಿಕ್ಕಿಹಾಕಿಕೊಳ್ಳಬಹುದಾದ ಹೆಚ್ಚಿನ ನೀರನ್ನು ಕಂಡುಹಿಡಿಯುವುದನ್ನು "ಟ್ರ್ಯಾಪಿಂಗ್ ಮಳೆ" ಸಮಸ್ಯೆ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ.
ಪ್ರತಿ ಬಾರ್ನ ಎಡ ಮತ್ತು ಬಲಕ್ಕೆ ಇರಿಸಬಹುದಾದ ಅತ್ಯುನ್ನತ ಪಟ್ಟಿಯನ್ನು ನಿರ್ಧರಿಸುವುದು ಗುರಿಯಾಗಿದೆ. ಎಡ ಮತ್ತು ಬಲಕ್ಕೆ ಇರುವ ಪ್ರಮುಖ ಬಾರ್ಗಳ ಕನಿಷ್ಠ, ಪ್ರಸ್ತುತ ಬಾರ್ನ ಎತ್ತರಕ್ಕಿಂತ ಕಡಿಮೆ, ಪ್ರತಿ ಬಾರ್ನ ಮೇಲ್ಭಾಗದಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ನೀರಿನ ಪ್ರಮಾಣವಾಗಿದೆ.
ತೀರ್ಮಾನ
ಇತರ ಡೇಟಾ ರಚನೆ ವಿಷಯಗಳಿಗೆ ಹೋಲಿಸಿದರೆ, ಸರಣಿಗಳು ಸರಳವಾಗಿದೆ. ಏಸ್ ಅರೇ ಸಂದರ್ಶನ ಪ್ರಶ್ನೆಗಳನ್ನು ಮಾಡಲು, ನೀವು ಅರೇಗಳ ಮೂಲಭೂತ ತಿಳುವಳಿಕೆಯನ್ನು ಹೊಂದಿರಬೇಕು.
ಅರೇ ಕಾರ್ಯಾಚರಣೆಗಳು (ಘೋಷಣೆ/ಸೃಷ್ಟಿಯಿಂದ ಅರೇ ಐಟಂಗಳನ್ನು ಪ್ರವೇಶಿಸುವುದು/ಮಾರ್ಪಡಿಸುವವರೆಗೆ), ಹಾಗೆಯೇ ಸರಣಿ ಸಂದರ್ಶನದ ಪ್ರಶ್ನೆಗಳಿಗೆ ಯಶಸ್ವಿಯಾಗಿ ಉತ್ತರಿಸಲು ಲೂಪ್ಗಳು, ಪುನರಾವರ್ತನೆ ಮತ್ತು ಮೂಲ ಆಪರೇಟರ್ಗಳಂತಹ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಪರಿಕಲ್ಪನೆಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ನೀವು ಸರಣಿಗಳ ಅಡಿಪಾಯವನ್ನು ವ್ಯಾಪಕವಾಗಿ ಪರಿಶೀಲಿಸಬೇಕು. ಸಮಸ್ಯೆಯನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಗುರುತಿಸಿ.
ನೀವು ಯಾವುದೇ ಪ್ರಶ್ನೆಗಳನ್ನು ಹೊಂದಿದ್ದರೆ ನೀವು ಸ್ಪಷ್ಟೀಕರಣವನ್ನು ಪಡೆಯಬೇಕು. ಸಮಸ್ಯೆಯನ್ನು ಹೆಚ್ಚು ನಿರ್ವಹಿಸಬಹುದಾದ ಭಾಗಗಳಾಗಿ ವಿಭಜಿಸುವ ಬಗ್ಗೆ ಯೋಚಿಸಿ. ನೀವು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು ನೀವು ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಮನಸ್ಸಿನಲ್ಲಿಟ್ಟುಕೊಂಡಿದ್ದೀರಿ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ; ಅದನ್ನು ಫ್ಲೋಚಾರ್ಟ್ನಲ್ಲಿ ಬರೆಯಿರಿ ಅಥವಾ ದೃಶ್ಯೀಕರಿಸಿ. ನಂತರ ಕೋಡ್ ಬರೆಯಲು ಪ್ರಾರಂಭಿಸಿ.
ಪ್ರತ್ಯುತ್ತರ ನೀಡಿ