ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวอักษร arr เป็นอาร์กิวเมนต์แรก อาร์กิวเมนต์ที่สองของฟังก์ชันของเราจะเป็นตัวเลข num ฟังก์ชันของเราควรนับและส่งคืนจำนวนอาร์เรย์ย่อยของอาร์เรย์ที่มีองค์ประกอบที่แตกต่างกันจำนวน num เท่านั้น
ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −
const arr =[12, 15, 12, 15, 18];const num =2;
จากนั้นผลลัพธ์ควรเป็น −
คอนสตเอาท์ =7;
คำอธิบายผลลัพธ์
อาร์เรย์ย่อยประกอบด้วยองค์ประกอบที่แตกต่างกัน 2 อย่าง −
<ก่อน>[12,15], [15,12], [12,15], [15,18], [12,15,12], [15,12,15], [12,15,12, 15]ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const arr =[12, 15, 12, 15, 18];const num =2;const differentSubarrays =(arr =[], num =1) => { const findDistinct =(นับ) => { const map ={}; ให้ ptr =0; ให้แตกต่าง =0; ให้ res =0; สำหรับ (ให้ถูกต้อง =0; ขวานับ){ map[arr[ptr]] -=1; if(map[arr[ptr]] ===0){ แตกต่าง -=1; }; ptr +=1; }; res +=ขวา - ptr + 1; }; ผลตอบแทน res; }; ส่งคืน findDistinct(num) - findDistinct(num - 1)};console.log(distinctSubarrays(arr, num));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
7