โซลูชัน TS ของ AlgoExpert
พื้นที่เก็บข้อมูลนี้ประกอบด้วยวิธีแก้ปัญหาสำหรับความท้าทายจากคำถามการเข้ารหัส AlgoExpert
บันทึก:
ฉันยังไม่เสร็จสิ้นการท้าทายทั้งหมด และฉันกำลังอัปเดตพื้นที่เก็บข้อมูลนี้อย่างต่อเนื่องด้วยโซลูชันใหม่ โครงสร้างใหม่ การทดสอบใหม่ ฯลฯ ดังนั้น หากคุณต้องการดูการเปลี่ยนแปลงล่าสุด ให้ตรวจสอบความท้าทายล่าสุดที่ทำเครื่องหมายว่าเสร็จสมบูรณ์ ในส่วนรายการความท้าทายด้านล่าง
- ง่าย (31) | - ปานกลาง (73) | - ฮาร์ด (58) | - ยากมาก (38) |
---|---|---|---|
|
|
|
|
มากกว่า...
| มากกว่า...
| มากกว่า...
| มากกว่า...
|
(กลับไปด้านบน)
ทดสอบอัตโนมัติทุกครั้งหลังการคอมมิต - โดยใช้ Git Hooks และ Jest
ทดสอบอัตโนมัติหลังจากการกดทุกครั้ง - โดยใช้ Github Actions และ Jest
โฟลเดอร์ทั่วไป - เพื่อช่วยให้คุณใช้โค้ดซ้ำได้
ความท้าทายแต่ละอย่างมีโฟลเดอร์ของตัวเอง - เพื่อช่วยคุณจัดระเบียบโซลูชันของคุณ
แต่ละความท้าทายมีไฟล์ทดสอบของตัวเอง - เพื่อช่วยคุณดำเนินการทดสอบสำหรับความท้าทายที่เฉพาะเจาะจง
ความท้าทายแต่ละอย่างมีไฟล์ทดสอบเคสของตัวเอง - เพื่อช่วยคุณจัดระเบียบเคสทดสอบของคุณ
แต่ละความท้าทายจะมีไฟล์ README.md ของตัวเอง - เพื่อช่วยให้คุณเข้าใจความท้าทาย
ความท้าทายแต่ละรายการมีไฟล์โซลูชันของตัวเอง - เพื่อช่วยคุณเขียนโซลูชันของคุณ
ทดสอบโซลูชันของคุณได้ง่ายๆ เพียงสร้างไฟล์โซลูชันใหม่และอัปเดตไฟล์ทดสอบด้วยโซลูชันของคุณ
Makefile - เพื่อช่วยคุณดำเนินการทดสอบ สร้างความท้าทายใหม่ๆ และมุ่งมั่นในการแก้ปัญหาของคุณ
ง่ายต่อการคอมมิตโซลูชันของคุณ - เพียงเรียกใช้ make commit
จากนั้นมันจะคอมมิตพร้อมกับข้อความ feat(CHALLENGE_NAME): add solution {SOLUTION_NUMBER}
ง่ายต่อการสร้างความท้าทายใหม่ - เพียงแค่เรียกใช้ make new
จากนั้นมันจะสร้างโฟลเดอร์ ไฟล์ และไฟล์ README.md ให้กับคุณ โดยใช้เทมเพลต
ง่ายต่อการสร้างโซลูชันใหม่ - เพียงเรียกใช้ make new-solution
แล้วมันจะสร้างไฟล์โซลูชันให้คุณโดยใช้เทมเพลต
ง่ายต่อการรันการทดสอบ - เพียงแค่รัน make test
แล้วมันจะรันการทดสอบทั้งหมด
คุณสามารถปรับแต่งเทมเพลตได้ - เพียงอัปเดตโฟลเดอร์ scripts/templates
ง่ายต่อการแก้ไขใน VSCode - มีไฟล์ launch.json
พร้อมการกำหนดค่าการดีบักสำหรับแท็บความท้าทายที่เปิดอยู่ใน VSCode
ค้นหาความท้าทายล่าสุดที่เสร็จสมบูรณ์โดยอัตโนมัติ เพื่อสร้างโซลูชันใหม่เมื่อดำเนินการคำสั่ง make new-solution
ค้นหาความท้าทายถัดไปที่จะทำให้สำเร็จโดยอัตโนมัติ เพื่อสร้างความท้าทายใหม่เมื่อดำเนินการ make new
โซลูชันการอัปเดตอัตโนมัติได้รับการทดสอบ เมื่อดำเนินการคำสั่ง make new-solution
(กลับไปด้านบน)
จำลองการกำหนดฟังก์ชันจาก solution-0.ts
ไปยังไฟล์ใหม่เมื่อดำเนินการคำสั่ง make new-solution
หลังจากสร้างความท้าทายใหม่แล้ว ให้เปิดไฟล์ใหม่ทั้งหมดใน VSCode
อัปเดตความท้าทายทั้งหมดด้วยโครงสร้างใหม่หลังจากเสร็จสิ้นรายการท้าทาย
อัปเดตจำนวนความท้าทายที่เสร็จสมบูรณ์ในแต่ละระดับโดยอัตโนมัติหลังจากเสร็จสิ้นแต่ละความท้าทายเมื่อดำเนินการคำสั่ง make commit
ย้ายไฟล์กำหนดค่ารูทไปยังโฟลเดอร์ .config
สร้างโฟลเดอร์ docs
ด้วยไฟล์ README.md
พร้อมด้วยคำแนะนำและเคล็ดลับบางประการ
(กลับไปด้านบน)
วิธีการของฉัน สำหรับการแก้ปัญหาที่ท้าทายคือ:
การตระเตรียม
สร้าง โฟลเดอร์และไฟล์ท้าทาย (โดยใช้คำสั่ง make new
)
ขั้นตอนที่ 1
อ่าน คำอธิบายความท้าทาย
วาด วิธีแก้ปัญหา
เขียนวิธีแก้ปัญหา ใน TypeScript โดยไม่ต้องดูคำแนะนำในการแก้ปัญหา
รัน การทดสอบ (โดยใช้คำสั่ง make test-changed
)
ปรับโครงสร้าง โซลูชันใหม่
ทำซ้ำ ขั้นตอนที่ 4 และ 5 จนกว่าการทดสอบทั้งหมดจะผ่าน
ประเมิน ความซับซ้อน ของการแก้ปัญหา
ยืนยัน วิธีแก้ปัญหา (โดยใช้คำสั่ง make commit
)
ขั้นตอนที่ 2dn
ตรวจสอบ คำแนะนำ ในการแก้ปัญหา
เปรียบเทียบ โซลูชันของฉันกับคำแนะนำในการแก้ปัญหา
พยายาม ปรับปรุง โซลูชันของฉันหรือสร้างโซลูชันใหม่ตามคำแนะนำในโซลูชัน (โดยใช้คำสั่ง make new-solution
)
ทำซ้ำ ขั้นตอนที่ 4 ถึง 10 จนกว่าฉันจะพอใจกับวิธีแก้ปัญหา
ยืนยัน วิธีแก้ปัญหา (โดยใช้คำสั่ง make commit
)
ขั้นตอนที่ 3
ชม วิดีโอ วิธีแก้ปัญหา
ใช้ โซลูชันอื่นๆ จากวิดีโอหรือปรับโครงสร้างโซลูชันของฉันตามวิดีโอ
ยืนยัน วิธีแก้ปัญหา (โดยใช้คำสั่ง make commit
)
ผังงาน LR
START((การเตรียมการ)) --> หนึ่ง
อนุกราฟหนึ่ง[ขั้นตอนที่ 1]
A[อ่าน] --> B[วาด]
B --> C[รหัส]
C --> D[การทดสอบ]
ด --> ซี
D --> ฉัน[ความซับซ้อน]
ฉัน --> R[กระทำ]
จบ
กราฟย่อยที่สอง[ขั้นตอนที่ 2]
R --> J[คำแนะนำ]
เจ --> K[เปรียบเทียบ]
K -> L[รีแฟกเตอร์]
L --> M[การทดสอบ]
เอ็ม --> ล
M --> S[กระทำ]
จบ
อนุกราฟที่สาม[ขั้นตอนที่ 3]
S --> N[วิดีโอ]
ไม่มี --> O[รหัส]
O --> P[โค้ด/รีแฟกเตอร์]
P --> ถาม[การทดสอบ]
ถาม --> ป
ถาม --> T[กระทำ]
จบ
หนึ่ง --.-> สอง
สอง --.-> สาม
สาม --> สิ้นสุด(((สิ้นสุด)))
กำลังโหลด(กลับไปด้านบน)
โหนด js
TypeScript
ล้อเล่น
(กลับไปด้านบน)
โหนด js
(กลับไปด้านบน)
โคลนคอมไพล์ [email protected]:filipe1309/algoexpert-solutions.git
ซีดี algoexpert-โซลูชั่น
ทำการติดตั้ง
(กลับไปด้านบน)
ฉันได้สร้าง Makefile
เพื่อช่วยคุณทำการทดสอบ
ทำการทดสอบทั้งหมด:
ทำการทดสอบ
ดำเนินการทดสอบเฉพาะ:
ทำแบบทดสอบ t=CHALLENGE_NAME
ตัวอย่าง:
make test t=two-number-sum
รันการทดสอบที่เปลี่ยนแปลง:
ทำการทดสอบเปลี่ยนแปลง
(กลับไปด้านบน)
ฉันได้สร้าง Makefile
ด้วยคำสั่งพิเศษบางอย่าง
สร้างใหม่ [n=CHALLENGE_NAME] [l=CHALLENGE_LEVEL] [c=CHALLENGE_CATEGORY]
ตัวอย่าง:
make new
(กรอกข้อมูลพร้อมท์) หรือmake new n=two-number-sum l=easy c=arrays
ระดับ:
easy
medium
hard
very-hard
สิ่งนี้จะสร้าง:
โฟลเดอร์ ( src/easy/two-number-sum
)
ไฟล์ solution-0.ts
(ไฟล์ที่คุณจะเขียนโซลูชันของคุณ คุณสามารถสร้างเพิ่มเติมได้หากต้องการและอัปเดตไฟล์ทดสอบ)
ไฟล์ทดสอบ solution.spec.ts
ไฟล์ทดสอบกรณี cases.ts
ไฟล์ README.md
ทำการคอมมิต [m=COMMIT_MESSAGE]
ตัวอย่าง:
make commit m="feat: add two number sum solution"
หากคุณไม่ผ่านอาร์กิวเมนต์m
มันจะคอมมิตพร้อมกับข้อความ
feat(CHALLENGE_NAME): add solution {SOLUTION_NUMBER}
สร้างโซลูชันใหม่ [n=CHALLENGE_NAME_SNAKE] [l=CHALLENGE_LEVEL_LOWER]
ตัวอย่าง:
make new-solution [l=easy] [n=two-number-sum]
หรือmake new-solution
(กรอกข้อความแจ้ง)
สิ่งนี้จะสร้างไฟล์โซลูชันใหม่ solution-{SOLUTION_NUMBER}.ts
และอัปเดตไฟล์ทดสอบ
หากมี
solution-0.ts
อยู่แล้ว ระบบจะสร้างsolution-1.ts
และอัปเดตไฟล์ index.ts และไฟล์ทดสอบ และอื่นๆ...
คำสั่งช่วยเหลือ:
ให้ความช่วยเหลือ
(กลับไปด้านบน)
ยินดีต้อนรับคำขอดึง สำหรับการเปลี่ยนแปลงที่สำคัญ โปรดเปิดประเด็นก่อนเพื่อหารือเกี่ยวกับสิ่งที่คุณต้องการเปลี่ยนแปลง
โปรดตรวจสอบให้แน่ใจว่าได้อัปเดตการทดสอบตามความเหมาะสม
(กลับไปด้านบน)
เอ็มไอที
(กลับไปด้านบน)
อัลโกผู้เชี่ยวชาญ
ของขวัญปีใหม่ - รายชื่อคำถาม LeetCode 75 ข้อที่รวบรวมไว้เพื่อประหยัดเวลาของคุณ
เทมเพลต ShubcoGen™
Git Hooks ที่ไม่มีการพึ่งพาเพิ่มเติมเช่น Husky ในโปรเจ็กต์ Node.js
TypeScript + Jest
อัณฑะUnitários com Node.js, Jest และ TypeScript
Big O Notation อธิบายคืออะไร: ความซับซ้อนของอวกาศและเวลา
ใช้การแมปเส้นทางไม่มี TypeScript
การทำแผนที่เส้นทาง
ความละเอียดของโมดูล
ทำความเข้าใจสมการระยะทางเลเวนชไทน์สำหรับผู้เริ่มต้น
ปัญหาการแต่งงานที่มั่นคง - Numberphile
ปัญหาการแต่งงานที่มั่นคง (บิตทางคณิตศาสตร์)
(กลับไปด้านบน)
เสร็จสิ้นด้วย :heart: โดย Filipe Leuch Bonfim ?
(กลับไปด้านบน)