Latihan Algoritma dan Struktur Data
Solusi optimal untuk algoritma perusahaan IT Java IT dan masalah struktur data
1. Tumpukan dan antrian
- Desain Tumpukan dengan Fungsi GetMin
- Antrian dua tumpukan
- Cara merujuk ke fungsi rekursif dan stack operasi urutan terbalik
- Antrian kucing dan anjing
- Gunakan satu tumpukan untuk mengimplementasikan penyortiran tumpukan lain
- Untuk memecahkan masalah Hannover Tower, pertama -tama ubah aturan permainan: Batas garis tidak dapat dipindahkan langsung dari paling kiri ke paling kanan atau dari paling kanan ke paling kiri, tetapi harus melewati tengah. Temukan proses pergerakan yang optimal dan jumlah total langkah ketika menara adalah lapisan N lagi.
- Menghasilkan array maksimum jendela
- Maxtree untuk membangun data
- Diberi peta matriks pembentukan, nilainya 0 dan 1, temukan area persegi panjang maksimum 1 di antara semua daerah matriks di mana semua 1 adalah jumlah 1.
- Nilai maksimum dikurangi jumlah sub-array dengan nilai minimum kurang dari atau sama dengan num
2. Masalah daftar tautan
- Mengingat header pointer head1 dan head2 dari dua daftar tertaut yang dipesan, cetak bagian umum dari dua daftar tertaut tersebut
- Hapus K-th sampai simpul dalam daftar tunggal dan double-linked
- Hapus node di tengah daftar yang ditautkan dan node di A/B
- Menerapkan fungsi yang membalikkan daftar tautan satu arah dan masing-masing membalikkan daftar ditautkan dua arah
- Balik bagian dari daftar tertaut satu arah
- Masalah Arthur dengan daftar tautan tunggal putaran
- Tentukan apakah daftar yang ditautkan adalah struktur palindromik
- Bagilah daftar tertaut satu arah menjadi kiri kecil, sama dengan tengah, kanan besar
- Salin daftar tertaut yang berisi node pointer acak
- Dua daftar tertaut tunggal menghasilkan daftar tautan yang ditambahkan
- Serangkaian masalah berpotongan dua daftar tertaut
- Urutan terbalik antara setiap k node dari satu daftar tertaut tunggal
- Hapus node dengan nilai berulang dalam daftar tertaut tunggal yang tidak dipesan
- Hapus node nilai yang ditentukan dalam satu daftar tertaut tunggal
- Konversi Pencarian Pohon Biner ke Tabel Tautan Bipirectional
- Pemilihan pemilihan daftar linked tunggal
- Cara aneh untuk menghapus node
- Masukkan node baru ke dalam daftar link tunggal melingkar yang dipesan
- Gabungkan dua tabel terkait tunggal yang dipesan
- Periksa ulang meja terkait tunggal di area setengah kiri dan kanan
Masalah pohon biner
- Metode rekursif dan non-rekursif untuk mewujudkan preorder, urutan menengah dan postorder traversal pohon biner masing-masing
- Cetak simpul batas pohon biner
- Cara mencetak pohon biner lebih intuitif
- Serialisasi dan deserialisasi pohon biner
- Metode tingkat tuhan untuk melintasi pohon biner
- Temukan panjang jalur terpanjang dari jumlah yang terakumulasi untuk nilai yang ditentukan di pohon biner
- Temukan pohon biner pencarian terbesar di pohon biner
- Temukan topologi maksimum di pohon biner yang memenuhi kriteria pohon biner pencarian
- Pohon Biner By Layer Pencetakan dan Pencetakan Zigzag
- Sesuaikan pencarian dua node yang salah di pohon biner
- Tentukan apakah pohon T1 berisi semua struktur topologi pohon T2
- Tentukan apakah ada subtree di pohon T1 yang memiliki topologi yang persis sama dengan pohon T2
- Tentukan apakah pohon biner adalah pohon biner yang seimbang
- Membangun kembali pohon biner pencarian berdasarkan array pasca-pesanan
- Tentukan apakah pohon biner adalah pohon biner pencarian dan pohon biner lengkap
- Menghasilkan pohon biner pencarian seimbang melalui array yang dipesan
- Temukan simpul penerus sebuah simpul di pohon biner
- Temukan leluhur bersama terdekat dari dua node di pohon biner
- Algoritma Tarjan dan Set Pencarian Bersamaan Memecahkan Masalah Kueri Batch Nenek moyang publik baru -baru ini antara node pohon biner
- Jarak maksimum antara simpul pohon biner
- Merekonstruksi pohon biner dalam kombinasi dengan preorder, orde tengah dan array postorder
- Hasilkan array pasca-pesanan melalui preorder dan array dalam urutan
- Statistik dan menghasilkan semua pohon biner yang berbeda
- Hitung jumlah node di pohon yang benar -benar biner
- Maksimal bertahap
Pemrograman rekursif dan dinamis
- Pemrograman Rekursif dan Dinamis Masalah Seri Fibonacci
- Jalur minimum ke matriks
- Jumlah Minimum Mata Uang untuk menukar uang
- Cara menukar uang
- Menara Hannover
- Masalah umum umum terpanjang
- Masalah string publik terpanjang
- Biaya pengeditan minimum
- Komposisi string yang diselingi
- Masalah game Dungeons and Dragons
- Jumlah nomor yang dikonversi menjadi kombinasi huruf
- Jumlah komposisi ekspresi untuk mendapatkan hasil yang diinginkan
- Masalah permainan kartu dalam satu baris
- Lompat Game
- Urutan kontinu terpanjang dalam array
- N Queen's Problem
Masalah string
- Tentukan apakah dua string menjaga kata deformasi
- Jumlah substring angka dalam string
- Hapus substring k yang muncul di string secara berurutan
- Tentukan apakah dua string berputar kata
- Konversi string integer ke nilai integer
- Ganti string tertentu yang muncul terus menerus dalam string
- String statistik untuk string
- Tentukan apakah semua karakter dalam array karakter hanya muncul sekali
- Temukan string dalam array yang dipesan tapi kosong
- Penyesuaian dan penggantian string
- Balik string
- Jarak minimum antara dua senar dalam array
- Tambahkan minimum karakter untuk membuat string sebagai string palindromik
- Menurut validitas string dan panjang efektif maksimum
- Evaluasi String Formula
- Pasti ada sejumlah string biner di sebelah kiri 0
- Menjahit semua string untuk menghasilkan string modal dengan urutan kamus terkecil
- Temukan substring non-berulang terpanjang dari string
- Temukan jenis karakter baru yang disebutkan
- Panjang minimum yang mengandung substring
- Jumlah minimum segmentasi palindrom
- Masalah pencocokan string
- Implementasi pohon kamus (pohon awalan)
Operasi bit
- Tidak ada variabel tambahan yang digunakan untuk menukar dua angka
- Temukan jumlah yang lebih besar dari dua angka tanpa perbandingan
- Hanya operasi bit yang digunakan tanpa operasi aritmatika untuk menerapkan penambahan, pengurangan, perkalian dan pembagian bilangan bulat
- Berapa banyak 1ccc yang ada dalam ekspresi biner bilangan bulat
- Temukan angka ganjil dalam array di mana angka lain muncul secara merata
- Temukan nomor yang hanya muncul sekali dalam array di mana nomor lain muncul k kali
Masalah array dan matriks
- Matriks pencetakan lingkaran
- Putar matriks kuadrat searah jarum jam sebesar 90 °
- "一" matriks pencetakan mesin terbang
- Temukan jumlah K terkecil dalam array yang tidak tertib
- Panjang subarray terpendek untuk menyortir
- Temukan jumlah kejadian yang lebih besar dari N/K dalam array
- Temukan angka dalam matriks di mana baris dan kolom diurutkan
- Sub-array integable terpanjang diperoleh
- Tidak ada pencetakan berulang dari array yang diurutkan menambahkan semua paha depan dan kembar tiga untuk nilai yang diberikan
- Jumlah akumulasi panjang subarray terpanjang dalam array angka positif yang tidak disortir adalah nilai yang diberikan
- Masalah pada serangkaian jumlah akumulasi subarray terpanjang dalam array yang tidak disortir
- Jumlah akumulasi panjang subarray terpanjang dalam array yang tidak disortir kurang dari atau sama dengan nilai yang diberikan
- Penyortiran array angka alami
- Subskrip ganjil adalah angka ganjil atau bahkan subskrip adalah angka genap
- Akumulasi dan maksimum subarray
- Akumulasi Maksimum Jumlah Masalah Submatrix
- Temukan lokasi terkecil lokal di array
- Produk kumulatif maksimum sub-array dalam array
- Cetak top k of array N terbesar
- Batas -batasnya semuanya berukuran 1 ukuran persegi maksimum
- Lokasi ini tidak termasuk dalam perkalian kumulatif yang layak
- Penyesuaian Partisi Array
- Temukan nilai jalur terpendek
- Bilangan bulat positif terkecil yang tidak muncul dalam array
- Perbedaan maksimum antara angka yang berdekatan setelah penyortiran array adalah 9
praktik
- Ganti Spaces (Pedang Menunjuk untuk Menawarkan)
- Cari dalam array dua dimensi (pedang menunjuk untuk ditawarkan)
- Daftar Tautan Pembalikan (Pedoman Pedang untuk ditawarkan)
- Hapus node berulang dari daftar tertaut (pedang yang ditawarkan)
- Jumlah minimum array rotasi (pedang menunjuk pada penawaran)
- Nomor berulang dalam array (pedang untuk menawarkan)
- String of Number Worth (pedang menunjuk untuk ditawarkan)