Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript
JavaScript
  1. การหาค่าที่ทำให้ผลรวมค่าสัมบูรณ์ของความต่างน้อยที่สุด (Absolute Values Sum Minimization) ใน JavaScript

    ได้รับอาร์เรย์ตัวเลขที่เรียงแล้ว ต้องหาจำนวนเต็ม x ที่ทำให้ผลรวม |a[i] - x| น้อยที่สุด หากมีหลายค่า ให้เลือกค่าน้อยที่สุด รู้ว่าสำหรับอาร์เรย์ที่เรียงแล้ว ค่าที่ทำให้ผลรวมต่ำสุดคือค่ามัธยฐาน (median) ซึ่งอยู่ที่ดัชนี Math.ceil(arr.length/2)-1 ตัวอย่างโค้ด const arr = [2, 4, 7]; const absoluteValues

  2. การจัดเรียงตัวเลขของจำนวนเต็มโดยไม่ใช้เมธอดสตริงและอาร์เรย์ใน JavaScript

    เราต้องเขียนฟังก์ชันที่รับตัวเลขและคืนตัวเลขที่เล็กที่สุดที่สามารถสร้างได้จากการจัดเรียงเลขหลัก โดยห้ามใช้เมธอดสตริงและอาร์เรย์ ตัวอย่าง: 614532 → 123456 ตัวอย่างโค้ด const num = 614532; const sortDigits = num => { const getDigit = e => Math.floor(num / 10 ** e) % 10; const l = Math.ceil(

  3. การรวมเลขหลักของตัวเลขจนเหลือหลักเดียว (Sum up until single digit) ใน JavaScript

    เราต้องเขียนฟังก์ชันที่รับตัวเลขและรวมเลขหลักซ้ำๆ จนได้ผลลัพธ์เป็นตัวเลขหลักเดียว ตัวอย่าง: 5798 → 5+7+9+8=29 → 2+9=11 → 1+1=2 → ผลลัพธ์ 2 ตัวอย่างโค้ด 9) { return repeatSum(sumDigits(num)); } return num; }; console.log(repeatSum(num)); ผลลัพธ์ ค่าที่แสดงในคอนโซลจะเป็นดังนี้: 2

  4. การหาตัวเลขบวกที่มีค่าติดลบตรงข้ามอยู่ในอาร์เรย์ใน JavaScript

    เราต้องเขียนฟังก์ชันที่รับอาร์เรย์ตัวเลข (บวกและลบ) คืนอาร์เรย์ของตัวเลขบวกที่มีค่าติดลบตรงข้ามอยู่ในอาร์เรย์ด้วย ตัวอย่าง: [1, 5, -3, -5, 3, 2] → [5, 3] (เพราะมี -5 และ -3 อยู่ในอาร์เรย์) ตัวอย่างโค้ด const arr = [1, 5, -3, -5, 3, 2]; const findNumbers = (arr = []) => { const count = Object.c

  5. การลบค่าออกจากชุดตัวเลขแบบไม่ให้ค่าติดลบ (Non-negative Set Subtraction) ใน JavaScript

    มีชุดตัวเลขและค่าที่ต้องลบจากผลรวม ต้องกระจายการลบอย่างเท่าเทียม แต่ไม่ให้ค่าใดติดลบ ค่าลบที่เกินจะกระจายไปยังค่าบวกที่เหลืออย่างเท่าเทียม ตัวอย่าง: [4,5,6,7,8] - 25 → [0, 0, 0.666..., 1.666..., 2.666...] ตัวอย่างโค้ด const arr = [4, 5, 6, 7, 8]; const subtract = (arr, sum) => { return arr.map

  6. การสร้างชุดตัวเลขที่ผลรวมเท่ากับเป้าหมาย (Combination Sum) ใน JavaScript

    หาชุดตัวเลข m ตัวที่ผลรวมเท่ากับ n โดยใช้ตัวเลข 1-9 เท่านั้น และแต่ละชุดต้องไม่ซ้ำกัน (unique set) ตัวอย่าง: m=3, n=4 → [[1,2,4]]; m=3, n=9 → [[1,2,6], [1,3,5], [2,3,4]] ตัวอย่างโค้ด 9) return; search(from + 1, prefix.concat(from), m - 1, n - from); search(from + 1, prefix, m, n); }; co

  7. การแบ่งประโยคเป็นบล็อกความยาวคงที่โดยไม่ตัดคำใน JavaScript

    เราต้องเขียนฟังก์ชันที่รับสตริงยาวและขนาดบล็อก (chunk size) แบ่งสตริงเป็นชิ้นๆ ไม่เกินขนาดที่กำหนด โดยตัดเฉพาะที่ช่องว่างหรือจบประโยค (ไม่ตัดคำ) ใช้ Regular Expression เพื่อจับคู่จำนวนตัวอักษรที่กำหนด แล้วย้อนกลับหาช่องว่างหรือจบสตริง ตัวอย่างโค้ด const size = 200; const str = This process was conti

  8. การหาผลรวมของจำนวนที่หารลงตัวด้วยตัวเลขที่กำหนดใน JavaScript

    เราต้องเขียนฟังก์ชันที่รับตัวเลข n และตัวเลขอื่นๆ ต่อมา (divisors) หาผลรวมของจำนวน 1 ถึง n ที่หารลงตัวด้วยตัวหารใดตัวหารหนึ่งอย่างน้อยหนึ่งตัว ตัวอย่าง: sumMultiples(15, 2, 3) → 83 (ตัวเลข: 2,3,4,6,8,9,10,12,14,15) ตัวอย่างโค้ด const num = 15; const sumMultiple = (num, ...arr) => { const divid

  9. ความต่างระหว่างผลรวมกำลังสองกับกำลังสองของผลรวมใน JavaScript

    เราต้องเขียนฟังก์ชันที่รับตัวเลข n คำนวณ: 1) ผลรวมของกำลังสองของจำนวนธรรมชาติ 1 ถึง n 2) กำลังสองของผลรวมของจำนวนธรรมชาติ 1 ถึง n 3) คืนความต่างสัมบูรณ์ระหว่างทั้งสอง ตัวอย่าง: n=5 → sum of squares = 55, square of sums = 225 → diff = 170 ตัวอย่างโค้ด const squareDifference = (num = 1) => { let

  10. การจัดเรียงตัวอักษรภายในสตริงตามลำดับพจนานุกรมใน JavaScript

    มีสตริงคั่นด้วยจุลภาค (เช่น JAY,ROB,APPLE,AAKO) ต้องสร้างคำใหม่โดยนำตัวอักษรแรกของแต่ละคำมาเปรียบเทียบ ตัวอักษรที่น้อยกว่า (ตามลำดับพจนานุกรม) จะถูกนำมาต่อกันจนครบทุกตัวอักษร ตัวอย่าง: JAY,ROB,APPLE,AAKO → AAAJAKOPPLEROBY ตัวอย่างโค้ด const str = `JAY,ROB,APPLE,AAKO`; const specialSort = (str = ) =

  11. การเลื่อนสตริงแบบวนรอบ (Circular Shift) ซ้ายและขวาใน JavaScript

    เราต้องเขียนฟังก์ชันเลื่อนสตริงแบบวนรอบ (circular shift) โดยระบุจำนวนครั้งที่เลื่อนซ้าย (leftShifts) และขวา (rightShifts) Left Shift: ตัวอักษรแรกไปเป็นตัวสุดท้าย, Right Shift: ตัวอักษรสุดท้ายไปเป็นตัวแรก ตัวอย่างโค้ด const str = abcdef; const getShiftedString = (str, leftShifts, rightShifts) =>

  12. การแปลงจำนวนเต็มบวกเป็นตัวเลขโรมันใน JavaScript

    เราต้องเขียนฟังก์ชันแปลงจำนวนเต็มบวกเป็นตัวเลขโรมัน โดยใช้ตารางแมปค่าต่างๆ (1=I, 4=IV, 5=V, 10=X, 50=L, 100=C, 500=D, 1000=M, ฯลฯ) ตัวอย่างโค้ด const decimalToRoman = (num = 1) => { const legend = { 1: I, 2: II, 3: III, 4: IV, 5: V, 6: VI, 7: VII, 8: VIII, 9: IX, 10: X, 20: XX, 30: XXX,

  13. การจัดเรียงตัวเลขตามน้ำหนัก (ผลรวมเลขหลัก) ใน JavaScript

    น้ำหนักของตัวเลขคือผลรวมของเลขหลัก ต้องจัดเรียงอาร์เรย์ตัวเลขตามน้ำหนักจากน้อยไปมาก หากน้ำหนักเท่ากัน เรียงตามค่าจริงจากน้อยไปมาก ตัวอย่าง: 50 (น้ำหนัก 5) และ 23 (น้ำหนัก 5) → 23 จะอยู่ก่อน 50 ตัวอย่างโค้ด const arr = [2, 1, 100, 56, 78, 3, 66, 99, 200, 46]; const calculateWeight = (num, sum = 0) =

  14. การนับความถี่ของคำที่คั่นด้วยช่องว่างใน JavaScript

    มีสตริงที่มีคำคั่นด้วยช่องว่าง ต้องเขียนฟังก์ชันนับความถี่ของแต่ละคำและคืนอาร์เรย์ของออบเจกต์ {name, count} เรียงจากมากไปน้อย ตัวอย่าง: a b c d a v d e f g q → a:2, d:2, อื่นๆ:1 ตัวอย่างโค้ด const str = a b c d a v d e f g q; const countFrequency = (str = ) => { const result = []; const hash

  15. การแบ่งอาร์เรย์เป็นชunks (Chunking) ตามจำนวนที่กำหนดใน JavaScript

    เราต้องเขียนฟังก์ชันที่รับอาร์เรย์และจำนวน chunk (num) แล้วแบ่งอาร์เรย์เป็น num ชิ้นย่อย โดยชิ้นสุดท้ายอาจมีขนาดต่างกันถ้าไม่หารลงตัว ตัวอย่าง: [1,2,3,4,5,6,7,8] และ num=3 → [[1,2,3],[4,5,6],[7,8]] ตัวอย่างโค้ด const arr = [1, 2, 3, 4, 5, 6, 7, 8]; const num = 3; const chunkArray = (arr = [], num =

  16. อัลกอริทึมการบวกอาร์เรย์เลขฐานสอง (Binary) ใน JavaScript

    เราต้องเขียนฟังก์ชันบวกสองอาร์เรย์ที่มีเฉพาะ 0 และ 1 แทนเลขฐานสอง คืนอาร์เรย์ผลบวก กฎการบวกฐานสอง: 0+0=0, 0+1=1, 1+0=1, 1+1=10 (มี carry) ตัวอย่าง: [1,0,1] + [1,0,1] = [1,0,1,0] ตัวอย่างโค้ด 1) { temp = 0; carry = 1; } else { temp = el1 + el2 + carry; carry = 0; } res = temp + res; } if

  17. การตรวจสอบว่า array2 เป็น subset ของ array1 ใน JavaScript (พิจารณาค่าซ้ำ)

    เราต้องเขียนฟังก์ชันตรวจสอบว่า array2 เป็น subset ของ array1 โดยพิจารณาความถี่ของค่าซ้ำด้วย (ถ้า array1 มี a สองครั้ง array2 ต้องมี a อย่างน้อยสองครั้ง) ตัวอย่างโค้ด const isSubset = (arr1, arr2) => { const count = (arr, ind) => { let i = arr.length; while (i--) hash[arr[i]] = (hash[

  18. การหาคู่ตัวเลขที่ผลรวมเท่ากับค่าเป้าหมายใน JavaScript

    เราต้องเขียนฟังก์ชันที่รับอาร์เรย์ตัวเลขและค่าเป้าหมาย (target) คืนอาร์เรย์ของคู่ตัวเลขที่ผลรวมเท่ากับ target ใช้ Map object เพื่อตรวจสอบคู่ที่ต้องการในเวลา O(n) ตัวอย่างโค้ด const arr = [7, 0, -4, 5, 2, 3]; const allTwoSum = (arr, target) => { const map = {}; const results = []; for (let

  19. การลบโหนดออกจาก Singly Linked List ใน JavaScript

    มี Singly Linked List ที่แทนด้วยออบเจกต์ซ้อน {value, next} ต้องเขียนฟังก์ชันลบโหนดที่มีค่าตรงกับพารามิเตอร์ที่ส่งเข้าไป ตัวอย่างโค้ด const list = { value: 1, next: { value: 2, next: { value: 3, next: { value: 4, next: { value: 5, next: { value: 6, next: { value: 7, next: null } } } } } } }; con

  20. การหาค่าเฉลี่ยของแต่ละอาร์เรย์ย่อยในอาร์เรย์ซ้อน JavaScript

    เราต้องเขียนฟังก์ชันที่รับอาร์เรย์ของอาร์เรย์ตัวเลข คำนวณค่าเฉลี่ยของแต่ละอาร์เรย์ย่อย และคืนอาร์เรย์ของค่าเฉลี่ยเหล่านั้น ตัวอย่าง: [[1], [2,3], [4,5,6,7]] → [1, 2.5, 5.5] ตัวอย่างโค้ด const arr = [ [1], [2,3], [4,5,6,7] ]; const average = (arr = []) => { const sum = arr.reduce((a, b) => a

Total 5941 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:41/298  20-คอมพิวเตอร์/Page Goto:1 35 36 37 38 39 40 41 42 43 44 45 46 47