Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. การหาผลรวมสูงสุดและต่ำสุดจากสองจำนวนด้วยการแทนที่เลขหลักใน C++

    เราได้รับจำนวนบวกสองจำนวน num1 และ num2 เป้าหมายคือการหาผลรวมต่ำสุดและสูงสุดที่เป็นไปได้ของสองจำนวนนี้หลังจากทำการแทนที่เลขหลักในทั้งสองจำนวน เราสามารถแทนที่เลขหลักจากแต่ละจำนวนในทั้งสองจำนวนได้ ตัวอย่างเช่น num1 คือ 434 และ num2 คือ 324 และเราสามารถแทนที่เลข 3 ด้วย 4 และเลข 4 ด้วย 3 ได้ ผลรวมต่ำสุด

  2. การหาผลรวมสูงสุดของอาร์เรย์หลังจากเปลี่ยนเครื่องหมายตามจำนวน k ครั้งใน C++

    เราได้รับอาร์เรย์ของจำนวนเต็มบวกและลบ พร้อมกับจำนวน K เป้าหมายคือการหาผลรวมสูงสุดของอาร์เรย์หลังจากทำการเปลี่ยนเครื่องหมายของสมาชิกในอาร์เรย์ทั้งหมด K ครั้ง โดยการดำเนินการเปลี่ยนเครื่องหมายแต่ละครั้งจะคูณสมาชิกใดสมาชิกหนึ่งด้วย -1 แนวคิดการแก้ปัญหา วิธีการคือการแปลงจำนวนลบทั้งหมดให้เป็นจำนวนบวกก่อ

  3. หาตัวเลขติดต่อกันสูงสุดในอาเรย์ใน C++

    เราได้รับอาเรย์จำนวนเต็มบวก เป้าหมายคือหาจำนวนตัวเลขติดต่อกัน (consecutive numbers) มากที่สุดที่มีอยู่ในอาเรย์ เริ่มจากเรียงอาเรย์ แล้วเปรียบเทียบสมาชิกติดกัน arr[j] == arr[i] + 1 (j=i+1) หากต่าง 1 เพิ่ม count และ i++,j++ มิฉะนั้น reset count=1 เก็บ max count ไว้ใน maxc อินพุต Arr[] = {100, 21, 24,

  4. จำนวนตัวเลขเท่ากันสูงสุดในอาเรย์หลังดำเนินการที่กำหนดใน C++

    เราได้รับอาเรย์จำนวนเต็ม เป้าหมายคือหาจำนวนตัวเลขที่เท่ากันมากที่สุดหลังทำการดำเนินการ: เลือก a[i] และ a[j] (i != j) a[i]++, a[j]-- ผลรวมของอาเรย์ไม่เปลี่ยนแปลง หากผลรวมหาร n ลงตัว (sum % n == 0) ทำให้ทุกตัวเท่ากันได้ n ตัว มิฉะนั้น ทำให้เท่ากันได้ n-1 ตัว อินพุต Arr[] = {1, 2, 3} เอาต์พุต Maximu

  5. จำนวนคู่อาเรย์สูงสุดที่ให้ผลรวมเท่ากันใน C++

    เราได้รับอาเรย์จำนวนเต็ม เป้าหมายคือหาจำนวนคู่สูงสุดในอาเรย์ที่บวกกันได้ผลรวมเท่ากัน อินพุต Arr[] = {1, 2, 3, 4, 2} เอาต์พุต Maximum count of pairs with same sum: 3 คำอธิบาย − ผลรวมคู่: {1,2},{1,2}=3; {1,3},{2,2}=4; {1,4},{2,3},{3,2}=5 (มากที่สุด 3 คู่); {2,4}=6; {3,4}=7 อินพุต Arr[] = {5, 3, 6, 1}

  6. นับสมาชิกน้อยกว่าหรือเท่ากับค่าที่กำหนดใน Sorted Rotated Array ใน C++

    เราได้รับอาเรย์จำนวนเต็มที่เป็น sorted rotated array เป้าหมายคือหาจำนวนสมาชิกที่น้อยกว่าหรือเท่ากับ K วิธีการคือลูปผ่านทั้งอาเรย์นับสมาชิกที่ <= K อินพุต Arr[] = {1, 2, 3, 4, 9, 8, 10} K = 4 เอาต์พุต Elements less than or equal to 4: 4 คำอธิบาย − สมาชิก <=4: 1,2,3,4 Count=4 อินพุต Arr[] = {5, 3, 6,

  7. นับสมาชิกที่มีจำนวนค่าที่มากกว่าหรือเท่ากับตัวมันเองเท่ากับตัวมันเองใน C++

    = X (ไม่นับตัวมันเอง) ต้องเท่ากับ X อย่างแน่นอน อินพุต Arr[] = {0, 1, 2, 3, 4, 9, 8} เอาต์พุต Elements exactly greater than equal to itself: 1 คำอธิบาย=3 ทั้งหมด 3 ตัว (4,8,9) นับได้ 1 อินพุต Arr[] = {1, 1, 1, 1, 1} เอาต์พุต Elements exactly greater than equal to itself: 0 คำอธิบาย=1 คือ 4 ไม่เท่าก

  8. นับลำดับไบนารีความยาวคู่ที่ครึ่งหน้าและครึ่งหลังมีผลรวมบิตเท่ากันใน C++

    เราได้รับจำนวนบิต n สำหรับลำดับไบนารี เป้าหมายคือหาจำนวนลำดับไบนารีความยาว 2n ที่ผลรวมบิตครึ่งแรกและครึ่งหลังเท่ากัน (n บิตแรกและ n บิตถัดไปมีผลรวมเท่ากัน) สำหรับ n บิต จำนวนวิธีที่มี 1 จำนวน k ตัว คือ nCk สำหรับ 2n บิต ต้องการครึ่งแรกมี k ตัว 1 และครึ่งหลังก็ k ตัว 1 จำนวนวิธี = nCk × nCk ผลรวมทั้

  9. นับความถี่ทุกสมาชิกในอาเรย์ O(1) extra space และ O(n) time ใน C++

    เราได้รับอาเรย์สมาชิกมีค่า 1 ถึง n บางตัวซ้ำ บางตัวหาย เป้าหมายคือหาความถี่ของทุกสมาชิกใน O(n) time และ O(1) extra space อินพุต Arr[] = {1, 2, 2, 3, 4, 4, 4, 5} เอาต์พุต 1→1, 2→2, 3→1, 4→3, 5→5 คำอธิบาย − สมาชิกสูงสุดคือ 5 แสดงจำนวนครั้งที่แต่ละตัวปรากฏ อินพุต Arr[] = {1, 4, 4, 5, 5, 5, 5} เอาต์พุต

  10. นับคู่ index ที่เงื่อนไขที่กำหนดใน C++

    เราได้รับอาเรย์ที่เป็น permutation ของจำนวนธรรมชาติ 1 ถึง N เป้าหมายคือหาคู่ index (i, j) ที่ทำให้เงื่อนไข: Arr[i] + Arr[j] = max(Arr[x]) สำหรับ i ≤ x ≤ j นั่นคือ ผลรวมของ Arr[i] และ Arr[j] เท่ากับค่าสูงสุดที่เกิดขึ้นระหว่างช่วง i ถึง j อินพุต Arr[] = {2, 4, 1, 3, 6, 5} เอาต์พุต Count of index pair

  11. นับการ 'move-to-front' น้อยที่สุดเพื่อเรียงอาเรย์ใน C++

    เราได้รับอาเรย์ตัวเลข 1 ถึง n ไม่มีตัวซ้ำ เป้าหมายคือหาจำนวนการ move-to-front (นำสมาชิกไปวางหน้าสุด index 0) น้อยที่สุดเพื่อเรียงอาเรย์ เราจะลูปจากท้ายสู่หน้า หากสมาชิกอยู่ตำแหน่งที่ถูกต้องแล้ว ไม่ต้อง move มิฉะนั้นต้อง move สำหรับตัวเลข 1 ถึง n ตำแหน่งที่ถูกต้องของ arr[i] ควรอยู่ที่ index i+1 (arr

  12. นับการพลิกขวา (right flips) น้อยที่สุดเพื่อทำให้อาเรย์เป็น 1 ทั้งหมดใน C++

    เราได้รับอาเรย์ 0 และ 1 แทนสถานะหลอดไฟที่ต่อสายเดียวกัน 0 = ปิด, 1 = เปิด สำหรับลำดับ N หลอด หากกดสวิตช์หลอด i ทุกหลอดทางขวา (i+1 ถึง n) จะสลับสถานะ (ON→OFF, OFF→ON) เป้าหมายคือหาจำนวนสวิตช์น้อยที่สุดที่ต้องกดเพื่อทำให้หลอดทุกดวงเปิด (1) สวิตช์เดียวกันกดได้หลายครั้ง เทียบเท่ากับการ flip สถานะทางขวา

  13. นับขั้นตอนน้อยที่สุดเพื่อได้อาเรย์เป้าหมายจากอาเรย์ศูนย์ใน C++

    เราได้รับอาเรย์ target[] ที่มีตัวเลข ต้องหาขั้นตอนน้อยที่สุดที่อาเรย์ศูนย์ [0,0,0,0...] สามารถกลายเป็น target[] ได้โดยใช้ 2 การดำเนินการเท่านั้น: Increment operation − เพิ่มทุกสมาชิกทีละ 1 แต่ละครั้งนับ 1 ขั้นตอน (n ครั้งสำหรับ n สมาชิก = n steps) Doubling operation − คูณอาเรย์ทั้งอาเรย์ด้วย 2 นับ

  14. นับคอลัมน์ที่ไม่ได้เรียงลำดับเพิ่มขึ้นในอาเรย์สตริงใน C++

    เราได้รับอาเรย์ของสตริงที่มีความยาวเท่ากันทุกตัว เป้าหมายคือหาคอลัมน์ (เมทริกซ์ของสตริง) ที่ไม่ได้เรียงลำดับเพิ่มขึ้น (increasing order) เช่น ตัวอักษรแรกของแต่ละสตริงเปรียบเทียบกันตามลำดับ ถ้าไม่เพิ่มขึ้น ให้นับ 1 ทำซ้ำสำหรับตัวอักษรที่ 2, 3, ... จนถึงตัวสุดท้าย อินพุต Arr[] = {abc, bcd, def} เอาต์

  15. หาตัวเลขมากที่สุดจากการต่อข้อความ (concatenate) สมาชิกใน Circular Array ใน C++

    เราได้รับ Circular Array ของตัวเลข (อาเรย์วนรอบ: สมาชิกแรกอยู่ติดกับสมาชิกสุดท้าย) แต่ละสมาชิกมีจำนวนหลักเท่าหรือต่างกัน เป้าหมายคือสร้างตัวเลขมากที่สุดโดยการต่อ (concatenate) ตัวเลข โดยอาจหมุน (rotate) ตำแหน่งสมาชิก เราทำได้โดยหาตัวเลขที่มีหลักหน่วย (leftmost digit) มากที่สุด ตัวเลขนั้นจะมาวางตำแห

  16. จำนวนกระจกสูงสุดที่ส่งแสงจากล่างไปขวาใน C++

    เราได้รับเมทริกซ์สี่เหลี่ยมจัตุรัสที่มีแค่ 0 และ 1 โดย 0 = ว่าง, 1 = อุปสรรค ต้องหาจำนวนกระจกที่วางในเซลล์ว่างได้ ซึ่งกระจกสามารถส่งแสงจากล่าง (bottom) ไปขวา (right) ได้ กรณีนี้เป็นไปได้เมื่อ วางกระจกที่ [i,j] และเซลล์ด้านขวาในแถว i และเซลล์ด้านล่างในคอลัมน์ j ไม่มีอุปสรรค (เป็น 0 ทุกตัว) หากกระจกอ

  17. หาค่าสูงสุดของ x + y + z ที่ทำให้ ax + by + cz = n ใน C++

    เราได้รับจำนวนเต็ม a, b, c, n เป้าหมายคือเพิ่มค่าผลรวม x + y + z ให้มากที่สุด โดยที่ ax + by + cz = n จากสูตร: cz = n - (ax + by) → z = (n - (ax + by)) / c โดยการ fix x และ y คำนวณ z จากสูตร สำหรับ x, y, z ทุกค่า คำนวณผลรวมและเก็บค่าสูงสุด อินพุต n = 6, a = 3, b = 4, c = 5 เอาต์พุต maximum x+y+z is

  18. หาค่าสูงสุดของ arr[j] - arr[i] + arr[l] - arr[k] โดย i < j < k < l ใน C++

    เราได้รับอาเรย์จำนวนเต็ม เป้าหมายคือหาค่าสูงสุดของนิพจน์: arr[j] - arr[i] + arr[l] - arr[k] โดย i < j < k < l เราทำได้โดยวนลูปทุกตัวคำนวณนิพจน์ หากค่ามากที่สุดจนถึงตอนนั้น เก็บไว้และคืนค่าสุดท้าย อินพุต arr[] = {1, 2, 3, 4} เอาต์พุต Maximum value for above expression is: 2 คำอธิบาย − i=0, j=1, k=2,

  19. นับ Magic Squares ในกริด (Grid) ใน C++

    เราได้รับเมทริกซ์ตัวเลข เป้าหมายคือหาจำนวน Magic Squares ภายในเมทริกซ์นั้น Magic Square (ถ้ามองเป็นเมทริกซ์) คือเมทริกซ์ 3x3 ที่มีตัวเลข 1 ถึง 9 ครั้งละ 1 ครั้ง (เหมือนกริดซูโดกุ) คุณสมบัติ: ตัวเลขทุกตัวเกิดขึ้นครั้งละ 1 ครั้ง ผลรวมทั้ง 9 เซลล์ = 45 ผลรวมแต่ละแถว 3 ตัว = 15 ผลรวมแต่ละคอลัมน์ 3 ตัว

  20. สร้าง Turing Machine สำหรับภาษา L = {aⁿ bᵐ a⁽ⁿ⁺ᵐ⁾ | n,m ≥ 1} ใน C++

    Turing Machine − อุปกรณ์ยอมรับคำในภาษาที่สร้างโดย grammar ประเภท 0 (Type-0) TM เป็นโมเดลทางคณิตศาสตร์ประกอบด้วยเทปยาวไม่สิ้นสุดแบ่งเป็นเซลล์ ให้อินพุต มีหัวอ่าน (head) อ่านเทป ลงทะเบียนสถานะ (state register) เก็บสถานะ TM หลังอ่านสัญลักษณ์ จะแทนที่ด้วยสัญลักษณ์อื่น เปลี่ยนสถานะภายใน และเคลื่อนที่ซ้า

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:200/301  20-คอมพิวเตอร์/Page Goto:1 194 195 196 197 198 199 200 201 202 203 204 205 206