Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Cover Über den Autor Titel Impressum Inhaltsverzeichnis Vorwort 1 Einleitung 1.1 Aufbau der Kapitel 1.2 Grundgerüst des Eclipse-Projekts 1.3 Grundgerüst für die Unit Tests 1.4 Anmerkung zum Programmierstil 1.5 Ausprobieren der Beispiele und Lösungen I Grundlagen
2 Mathematische Aufgaben 2.1 Einführung 2.1.1 Römische Zahlen 2.1.2 Zahlenspielereien 2.2 Aufgaben 2.2.1 Aufgabe 1: Grundrechenarten () 2.2.2 Aufgabe 2: Zahl als Text () 2.2.3 Aufgabe 3: Vollkommene Zahlen () 2.2.4 Aufgabe 4: Primzahlen () 2.2.5 Aufgabe 5: Primzahlpaare () 2.2.6 Aufgabe 6: Prüfsumme () 2.2.7 Aufgabe 7: Römische Zahlen () 2.2.8 Aufgabe 8: Kombinatorik () 2.2.9 Aufgabe 9: Armstrong-Zahlen () 2.2.10 Aufgabe 10: Max Change Calculator () 2.2.11 Aufgabe 11: Befreundete Zahlen () 2.2.12 Aufgabe 12: Primfaktorzerlegung () 2.3 Lösungen 2.3.1 Lösung 1: Grundrechenarten () 2.3.2 Lösung 2: Zahl als Text () 2.3.3 Lösung 3: Vollkommene Zahlen () 2.3.4 Lösung 4: Primzahlen () 2.3.5 Lösung 5: Primzahlpaare () 2.3.6 Lösung 6: Prüfsumme () 2.3.7 Lösung 7: Römische Zahlen () 2.3.8 Lösung 8: Kombinatorik () 2.3.9 Lösung 9: Armstrong-Zahlen () 2.3.10 Lösung 10: Max Change Calculator () 2.3.11 Lösung 11: Befreundete Zahlen () 2.3.12 Lösung 12: Primfaktorzerlegung () 3 Rekursion 3.1 Einführung 3.1.1 Mathematische Beispiele 3.1.2 Algorithmische Beispiele 3.1.3 Ablauf beim Multiplizieren der Ziffern einer Zahl 3.1.4 Typische Probleme 3.2 Aufgaben 3.2.1 Aufgabe 1: Fibonacci () 3.2.2 Aufgabe 2: Ziffern verarbeiten () 3.2.3 Aufgabe 3: ggT / GCD () 3.2.4 Aufgabe 4: Reverse String () 3.2.5 Aufgabe 5: Array Sum () 3.2.6 Aufgabe 6: Array Min () 3.2.7 Aufgabe 7: Konvertierungen () 3.2.8 Aufgabe 8: Exponentialfunktion () 3.2.9 Aufgabe 9: Pascal’sches Dreieck () 3.2.10 Aufgabe 10: Zahlenpalindrome () 3.2.11 Aufgabe 11: Permutationen () 3.2.12 Aufgabe 12: Count Substrings () 3.2.13 Aufgabe 13: Lineal () 3.3 Lösungen 3.3.1 Lösung 1: Fibonacci () 3.3.2 Lösung 2: Ziffern verarbeiten () 3.3.3 Lösung 3: ggT / GCD () 3.3.4 Lösung 4: Reverse String () 3.3.5 Lösung 5: Array Sum () 3.3.6 Lösung 6: Array Min () 3.3.7 Lösung 7: Konvertierungen () 3.3.8 Lösung 8: Exponentialfunktion () 3.3.9 Lösung 9: Pascal’sches Dreieck () 3.3.10 Lösung 10: Zahlenpalindrome () 3.3.11 Lösung 11: Permutationen () 3.3.12 Lösung 12: Count Substrings () 3.3.13 Lösung 13: Lineal () 4 Strings 4.1 Einführung 4.1.1 Die Klasse String 4.1.2 Die Klassen StringBuffer und StringBuilder 4.1.3 Die Klasse Character 4.1.4 Beispiele zu Character und String 4.2 Aufgaben 4.2.1 Aufgabe 1: Zahlenumwandlungen () 4.2.2 Aufgabe 2: Joiner () 4.2.3 Aufgabe 3: Reverse String () 4.2.4 Aufgabe 4: Palindrom () 4.2.5 Aufgabe 5: No Duplicate Chars () 4.2.6 Aufgabe 6: Doppelte Buchstaben entfernen () 4.2.7 Aufgabe 7: Capitalize () 4.2.8 Aufgabe 8: Rotation () 4.2.9 Aufgabe 9: Wohlgeformte Klammern () 4.2.10 Aufgabe 10: Anagramm () 4.2.11 Aufgabe 11: Morse Code () 4.2.12 Aufgabe 12: Pattern Checker () 4.2.13 Aufgabe 13: Tennis-Punktestand () 4.2.14 Aufgabe 14: Versionsnummern () 4.2.15 Aufgabe 15: Konvertierung strToLong () 4.2.16 Aufgabe 16: Print Tower () 4.3 Lösungen 4.3.1 Lösung 1: Zahlenumwandlungen () 4.3.2 Lösung 2: Joiner () 4.3.3 Lösung 3: Reverse String () 4.3.4 Lösung 4: Palindrom () 4.3.5 Lösung 5: No Duplicate Chars () 4.3.6 Lösung 6: Doppelte Buchstaben entfernen () 4.3.7 Lösung 7: Capitalize () 4.3.8 Lösung 8: Rotation () 4.3.9 Lösung 9: Wohlgeformte Klammern () 4.3.10 Lösung 10: Anagramm () 4.3.11 Lösung 11: Morse Code () 4.3.12 Lösung 12: Pattern Checker () 4.3.13 Lösung 13: Tennis-Punktestand () 4.3.14 Lösung 14: Versionsnummern () 4.3.15 Lösung 15: Konvertierung strToLong () 4.3.16 Lösung 16: Print Tower () 5 Arrays 5.1 Einführung 5.1.1 Eindimensionale Arrays 5.1.2 Mehrdimensionale Arrays 5.1.3 Typische Fehler 5.2 Aufgaben 5.2.1 Aufgabe 1: Gerade vor ungeraden Zahlen () 5.2.2 Aufgabe 2: Flip () 5.2.3 Aufgabe 3: Palindrom () 5.2.4 Aufgabe 4: Inplace Rotate () 5.2.5 Aufgabe 5: Jewels Board Init () 5.2.6 Aufgabe 6: Jewels Board Erase Diamonds () 5.2.7 Aufgabe 7: Spiral-Traversal () 5.2.8 Aufgabe 8: Add One to Array As Number () 5.2.9 Aufgabe 9: Sudoku-Checker () 5.2.10 Aufgabe 10: Flood-Fill () 5.2.11 Aufgabe 11: Array Merge () 5.2.12 Aufgabe 12: Array Min und Max () 5.2.13 Aufgabe 13: Array Split () 5.2.14 Aufgabe 14: Minesweeper Board () 5.3 Lösungen 5.3.1 Lösung 1: Gerade vor ungerade Zahlen () 5.3.2 Lösung 2: Flip () 5.3.3 Lösung 3: Palindrom () 5.3.4 Lösung 4: Inplace Rotate () 5.3.5 Lösung 5: Jewels Board Init () 5.3.6 Lösung 6: Jewels Board Erase Diamonds () 5.3.7 Lösung 7: Spiral-Traversal () 5.3.8 Lösung 8: Add One to Array As Number () 5.3.9 Lösung 9: Sudoku-Checker () 5.3.10 Lösung 10: Flood-Fill () 5.3.11 Lösung 11: Array Merge () 5.3.12 Lösung 12: Array Min und Max () 5.3.13 Lösung 13: Array Split () 5.3.14 Lösung 14: Minesweeper Board () 6 Datumsverarbeitung 6.1 Einführung 6.1.1 Die Aufzählungen DayOfWeek und Month 6.1.2 Die Klassen LocalDate, LocalTime und LocalDateTime 6.1.3 Die Klasse ZonedDateTime 6.1.4 Die Klasse ZoneId 6.1.5 Die Klasse Duration 6.1.6 Die Klasse Period 6.1.7 Datumsarithmetik 6.1.8 Formatierung und Parsing 6.2 Aufgaben 6.2.1 Aufgabe 1: Schaltjahre () 6.2.2 Aufgabe 2: Basiswissen Date-API () 6.2.3 Aufgabe 3: Monatslänge () 6.2.4 Aufgabe 4: Zeitzonen () 6.2.5 Aufgabe 5: Zeitzonenberechnung () 6.2.6 Aufgabe 6: Berechnungen mit LocalDate () 6.2.7 Aufgabe 7: Kalenderausgabe () 6.2.8 Aufgabe 8: Wochentage () 6.2.9 Aufgabe 9: Sonntage und Schaltjahre () 6.2.10 Aufgabe 10: TemporalAdjuster () 6.2.11 Aufgabe 11: NthWeekdayAdjuster () 6.2.12 Aufgabe 12: Payday-TemporalAdjuster () 6.2.13 Aufgabe 13: Formatting and Parsing () 6.2.14 Aufgabe 14: Fault Tolerant Parsing () 6.3 Lösungen 6.3.1 Lösung 1: Schaltjahre () 6.3.2 Lösung 2: Basiswissen Date-API () 6.3.3 Lösung 3: Monatslänge () 6.3.4 Lösung 4: Zeitzonenberechnung () 6.3.5 Lösung 5: Zeitzonen () 6.3.6 Lösung 6: Berechnungen mit LocalDate () 6.3.7 Lösung 7: Kalenderausgabe () 6.3.8 Lösung 8: Wochentage () 6.3.9 Lösung 9: Sonntage und Schaltjahre () 6.3.10 Lösung 10: TemporalAdjuster () 6.3.11 Lösung 11: NthWeekdayAdjuster () 6.3.12 Lösung 12: Payday-TemporalAdjuster () 6.3.13 Lösung 13: Formatting and Parsing () 6.3.14 Lösung 14: Fault Tolerant Parsing () 7 Basisdatenstrukturen: Listen, Sets und Maps 7.1 Einführung 7.1.1 Das Interface Collection 7.1.2 Listen und das Interface List<E> 7.1.3 Mengen und das Interface Set 7.1.4 Schlüssel-Wert-Abbildungen und das Interface Map 7.1.5 Der Stack als LIFO-Datenstruktur 7.1.6 Die Queue als FIFO-Datenstruktur 7.2 Aufgaben 7.2.1 Aufgabe 1: Mengenoperationen () 7.2.2 Aufgabe 2: List Reverse () 7.2.3 Aufgabe 3: Duplikate entfernen () 7.2.4 Aufgabe 4: Maximaler Gewinn () 7.2.5 Aufgabe 5: Längstes Teilstück () 7.2.6 Aufgabe 6: Eigener Stack () 7.2.7 Aufgabe 7: Wohlgeformte Klammern () 7.2.8 Aufgabe 8: Check Magic Triangle () 7.2.9 Aufgabe 9: Pascal’sches Dreieck () 7.2.10 Aufgabe 10: Häufigste Elemente () 7.2.11 Aufgabe 11: Addition von Ziffern () 7.2.12 Aufgabe 12: Compound Key () 7.2.13 Aufgabe 13: List Merge () 7.2.14 Aufgabe 14: Excel Magic Select () 7.3 Lösungen 7.3.1 Lösung 1: Mengenoperationen () 7.3.2 Lösung 2: List Reverse () 7.3.3 Lösung 3: Duplikate entfernen () 7.3.4 Lösung 4: Maximaler Gewinn () 7.3.5 Lösung 5: Längstes Teilstück () 7.3.6 Lösung 6: Eigener Stack () 7.3.7 Lösung 7: Wohlgeformte Klammern () 7.3.8 Lösung 8: Check Magic Triangle () 7.3.9 Lösung 9: Pascal’sches Dreieck () 7.3.10 Lösung 10: Häufigste Elemente () 7.3.11 Lösung 11: Addition von Ziffern () 7.3.12 Lösung 12: Compound Key () 7.3.13 Lösung 13: List Merge () 7.3.14 Lösung 14: Excel Magic Select ()
II Fortgeschrittenere und kniffligere Themen
8 Rekursion Advanced 8.1 Memoization 8.1.1 Memoization für Fibonacci-Zahlen 8.1.2 Memoization für Pascal’sches Dreieck 8.2 Backtracking 8.2.1 n-Damen-Problem 8.3 Aufgaben 8.3.1 Aufgabe 1: Türme von Hanoi () 8.3.2 Aufgabe 2: Edit Distance () 8.3.3 Aufgabe 3: Longest Common Subsequence () 8.3.4 Aufgabe 4: Weg aus Labyrinth () 8.3.5 Aufgabe 5: Sudoku-Solver () 8.3.6 Aufgabe 6: Math Operator Checker () 8.3.7 Aufgabe 7: Wassereimer-Problem () 8.3.8 Aufgabe 8: Alle Palindrom-Teilstrings () 8.3.9 Aufgabe 9: n-Damen-Problem () 8.4 Lösungen 8.4.1 Lösung 1: Türme von Hanoi () 8.4.2 Lösung 2: Edit Distance () 8.4.3 Lösung 3: Longest Common Subsequence () 8.4.4 Lösung 4: Weg aus Labyrinth () 8.4.5 Lösung 5: Sudoku-Solver () 8.4.6 Lösung 6: Math Operator Checker () 8.4.7 Lösung 7: Wassereimer-Problem () 8.4.8 Lösung 8: Alle Palindrom-Teilstrings () 8.4.9 Lösung 9: n-Damen-Problem () 9 Binärbäume 9.1 Einführung 9.1.1 Aufbau, Begrifflichkeiten und Anwendungsbeispiele 9.1.2 Binärbäume 9.1.3 Binärbäume mit Ordnung: binäre Suchbäume 9.1.4 Traversierungen 9.1.5 Balancierte Bäume und weitere Eigenschaften 9.1.6 Bäume für die Beispiele und Übungsaufgaben 9.2 Aufgaben 9.2.1 Aufgabe 1: Tree Traversal () 9.2.2 Aufgabe 2: In-, Pre- und Postorder iterativ () 9.2.3 Aufgabe 3: Tree-Höhe berechnen () 9.2.4 Aufgabe 4: Kleinster gemeinsamer Vorfahre () 9.2.5 Aufgabe 5: Breadth-First () 9.2.6 Aufgabe 6: Level Sum () 9.2.7 Aufgabe 7: Tree Rotate () 9.2.8 Aufgabe 8: Rekonstruktion () 9.2.9 Aufgabe 9: Math Evaluation () 9.2.10 Aufgabe 10: Symmetrie () 9.2.11 Aufgabe 11: Check Binary Search Tree () 9.2.12 Aufgabe 12: Vollständigkeit () 9.2.13 Aufgabe 13: Tree Printer () 9.3 Lösungen 9.3.1 Lösung 1: Tree Traversal () 9.3.2 Lösung 2: In-, Pre- und Postorder iterativ () 9.3.3 Lösung 3: Tree-Höhe berechnen () 9.3.4 Lösung 4: Kleinster gemeinsamer Vorfahre () 9.3.5 Lösung 5: Breadth-First () 9.3.6 Lösung 6: Level Sum () 9.3.7 Lösung 7: Tree Rotate () 9.3.8 Lösung 8: Rekonstruktion () 9.3.9 Lösung 9: Math Evaluation () 9.3.10 Lösung 10: Symmetrie () 9.3.11 Lösung 11: Check Binary Search Tree () 9.3.12 Lösung 12: Vollständigkeit () 9.3.13 Lösung 13: Tree Printer () 10 Suchen und Sortieren 10.1 Einführung Suchen 10.1.1 Suchen in Collections und Arrays 10.1.2 Binärsuche mit binarySearch() 10.2 Einführung Sortieren 10.2.1 Insertion Sort 10.2.2 Selection Sort 10.2.3 Merge Sort 10.2.4 Quick Sort 10.2.5 Bucket Sort 10.2.6 Schlussgedanken 10.3 Aufgaben 10.3.1 Aufgabe 1: Contains All () 10.3.2 Aufgabe 2: Partitionierung () 10.3.3 Aufgabe 3: Binärsuche () 10.3.4 Aufgabe 4: Insertion Sort () 10.3.5 Aufgabe 5: Selection Sort () 10.3.6 Aufgabe 6: Quick Sort () 10.3.7 Aufgabe 7: Bucket Sort () 10.3.8 Aufgabe 8: Suche in rotierten Daten () 10.4 Lösungen 10.4.1 Lösung 1: Contains All () 10.4.2 Lösung 2: Partitionierung () 10.4.3 Lösung 3: Binärsuche () 10.4.4 Lösung 4: Insertion Sort () 10.4.5 Lösung 5: Selection Sort () 10.4.6 Lösung 6: Quick Sort () 10.4.7 Lösung 7: Bucket Sort () 10.4.8 Lösung 8: Suche in rotierten Daten () 11 Schlusswort und ergänzende Literatur 11.1 Schlusswort 11.1.1 Gelerntes pro Kapitel 11.1.2 Bedenkenswertes 11.2 Knobelaufgaben 11.2.1 Goldsäcke – Fälschung entdecken 11.2.2 Pferderennen – schnellste drei Pferde ermitteln 11.3 Ergänzende Literatur
III Anhang
A Schnelleinstieg JShell A.1 Java + REPL => jshell B Kurzeinführung JUnit 5 B.1 Schreiben und Ausführen von Tests B.1.1 Beispiel: Ein erster Unit Test B.1.2 Grundlagen zum Schreiben und Ausführen von Tests B.1.3 Behandlung erwarteter Exceptions mit assertThrows() B.2 Parametrisierte Tests mit JUnit 5 C Schnelleinstieg O-Notation C.1 Abschätzungen mit der O-Notation C.1.1 Komplexitätsklassen C.1.2 Komplexität und Programmlaufzeit
Fußnoten Literaturverzeichnis Index
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion