3097. Subarray Terpendek Dengan ATAU Sekurang-kurangnya K II
Kesukaran: Sederhana
Topik: Tatasusunan, Manipulasi Bit, Tetingkap Gelongsor
Anda diberi nombor tatasusunan bukan negatif integer dan integer k.
Suatu tatasusunan dipanggil istimewa jika bitwise ATAU semua elemennya ialah sekurang-kurangnya k.
Kembalikan panjang subarray khas terpendek tidak kosong1 nombor, atau pulangkan -1 jika tiada subbaris khas wujud.
Contoh 1:
Contoh 2:
Contoh 3:
Kekangan:
Petunjuk:
Penyelesaian:
Kita boleh menggunakan pendekatan tetingkap gelongsor digabungkan dengan manipulasi bit untuk menjejaki ATAU elemen dalam tetingkap.
Mari laksanakan penyelesaian ini dalam PHP: 3097. Subarray Terpendek Dengan ATAU Sekurang-kurangnya K II
minimumSubarrayLength($nums1, $k1) . "\n"; // Output: 1 $nums2 = [2, 1, 8]; $k2 = 10; echo $solution->minimumSubarrayLength($nums2, $k2) . "\n"; // Output: 3 $nums3 = [1, 2]; $k3 = 0; echo $solution->minimumSubarrayLength($nums3, $k3) . "\n"; // Output: 1 ?>Penjelasan:
kaedah SubarrayLength minimum:
- Mulakan ans kepada nilai tinggi yang mustahil ($n 1).
- Gunakan dua penunjuk l (kiri) dan r (kanan) untuk mengembangkan dan mengecilkan tetingkap.
- Kira OR subarray semasa anda mengembangkan tetingkap dengan orNum dan kurangkannya dengan undoOrNum apabila mengecut.
- Apabila keputusan OR memenuhi atau melebihi k, semak sama ada saiz tetingkap semasa lebih kecil daripada ans.
Kaedah orNum dan undoOrNum:
- kaedah orNum: Menambah bit pada kumulatif ATAU dengan mengemas kini tatasusunan kiraan. Jika bit baru ditetapkan dalam tetingkap (bermaksud kiraan[i] menjadi 1), bit itu ditambahkan pada ors.
- kaedah undoOrNum: Mengeluarkan bit daripada kumulatif ATAU apabila menggelongsor tetingkap ke kiri. Jika bit tidak lagi ditetapkan dalam mana-mana nombor dalam tetingkap (bermaksud kiraan[i] menjadi 0), bit itu dikeluarkan daripada ors.
Kerumitan Masa:
- Kerumitan masa ialah O(n) kerana setiap indeks ditambah dan dialih keluar daripada deque paling banyak sekali.
- n ialah panjang tatasusunan input.
4*Kerumitan Masa*:
Pautan Kenalan
Jika anda mendapati siri ini membantu, sila pertimbangkan untuk memberi repositori bintang di GitHub atau berkongsi siaran pada rangkaian sosial kegemaran anda ?. Sokongan anda amat bermakna bagi saya!
Jika anda mahukan kandungan yang lebih berguna seperti ini, sila ikuti saya:
Subarray : subarray ialah jujukan bukan kosong bersebelahan bagi elemen dalam tatasusunan. ↩
Atas ialah kandungan terperinci Subarray Terpendek Dengan ATAU Sekurang-kurangnya K II. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!