Hai, semua! Hari ini, saya menyelesaikan tiga masalah pada LeetCode: "Cari Semua Anagram dalam Rentetan," "Jujukan Berturut-turut Terpanjang," dan "Cari dalam Tatasusunan Isih Diputar." Masalah ini sangat menarik, dan kami mempunyai pendekatan logik yang berbeza untuk menyelesaikannya. Ia adalah lanjutan daripada masalah klasik untuk menyemak sama ada dua rentetan ialah anagram dan mencari elemen sasaran dalam tatasusunan.
Cari Semua Anagram dalam Rentetan: Untuk menyelesaikan masalah ini, kita boleh menggunakan teknik tetingkap gelongsor. Kita perlu merentasi tatasusunan input sambil menjejaki panjang tetap elemen berturut-turut. Kami menyemak sama ada segmen ini ialah anagram rentetan sasaran. Jika ya, kami menambah indeks pada tatasusunan hasil; jika tidak, kami mengabaikan indeks. Dengan cara ini kita boleh menyelesaikan masalah.
Jujukan Berturut-turut Terpanjang: Untuk menyelesaikan masalah ini, kami mula-mula mengalih keluar elemen pendua daripada tatasusunan menggunakan set. Kemudian, kami melintasi tatasusunan dan menyemak sebarang jujukan unsur berturut-turut ( 1 atau -1). Jika jujukan sedemikian wujud, kami menjejaki kiraannya; jika tidak, kita mengabaikannya. Dengan cara ini, kita boleh menentukan panjang jujukan berturut-turut terpanjang.
Cari dalam Tatasusunan Isih Diputar: Untuk menyelesaikan masalah ini, kita boleh menggunakan pendekatan carian binari. Pertama, kami membahagikan tatasusunan input kepada dua bahagian. Kami kemudiannya mengenal pasti separuh mana yang diisih dan melakukan carian binari pada separuh itu untuk mencari elemen sasaran. Jika sasaran tidak ditemui dalam separuh yang diisih, kami teruskan mencari dalam separuh yang tidak diisih. Jika elemen sasaran tidak ditemui dalam kedua-dua separuh, kami kembalikan -1. Dengan cara ini kita boleh menyelesaikan masalah ini.
Atas ialah kandungan terperinci Dalam Perjalanan Penyelesaian Masalah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!