Rumah >hujung hadapan web >tutorial js >Corak dua penunjuk dalam DSA
Hei! Mari kita sembang tentang helah hebat ini yang dipanggil teknik dua mata dalam DSA. Jangan risau, saya akan memastikan ia menyeronokkan dan melemparkan beberapa visual untuk membantu ia melekat. Bersedia untuk menyelam?
Jadi, apakah maksud dua mata ini?
Fikirkan ia seperti permainan di mana anda mempunyai dua pemain (kami akan memanggil mereka penunjuk) bermula pada bahagian yang berbeza dalam medan (itu susunan anda). Mereka boleh sama ada:
Teknik ini membantu anda menyelesaikan banyak masalah dengan sangat cekap tanpa menulis satu tan gelung. Agak kemas, ya?
Mengapa anda perlu mengambil berat tentangnya?
Nah, ia seperti kuasa besar untuk kod anda:
Jom lihat beberapa jenis masalah dua mata
Bayangkan anda cuba mencari dua nombor dalam tatasusunan disusun yang menjumlahkan sehingga sasaran. Ia seperti dua orang berlari ke arah satu sama lain untuk bertemu di tengah.
Berikut ialah contoh JavaScript pantas:
function twoSumSorted(arr, target) { let left = 0; let right = arr.length - 1; while (left < right) { const sum = arr[left] + arr[right]; if (sum === target) return [left, right]; if (sum < target) left++; else right--; } return -1; // No pair found } console.log(twoSumSorted([1, 2, 3, 4, 6], 10)); // Output: [2, 4]
Gambar nombor sebagai watak kecil yang comel dalam satu baris:
① ② ③ ④ ⑤
2. Ini sesuai untuk menyemak sama ada rentetan ialah palindrom. Gambar dua rakan bermula di hujung perkataan, bergerak ke arah tengah dan bertegur sapa jika semuanya sepadan.
function isPalindrome(s) { let left = 0; let right = s.length - 1; while (left < right) { if (s[left] !== s[right]) return false; left++; right--; } return true; } console.log(isPalindrome("racecar")); // Output: true console.log(isPalindrome("hello")); // Output: false
Bayangkan dua semut merangkak ke arah satu sama lain pada perkataan "kereta lumba":
r <-> r ?
a <-> a ?
c <-> c ?
Palindrom disahkan! ?
Beberapa aplikasi hebat teknik ini:
Petua pro:
Nak naik level? Cuba cabaran ini:
Teknik dua mata adalah seperti pisau Swiss Army untuk pengekodan. Ia mudah tetapi berkuasa, dan dengan beberapa latihan, anda akan menggunakannya tanpa berfikir.
Ada soalan atau ingin berkongsi penyelesaian anda? Tinggalkan komen atau beri saya jeritan. Selamat mengekod!
Atas ialah kandungan terperinci Corak dua penunjuk dalam DSA. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!