Train your mind with algorithms
/install algorithm-practice
๐ฏ Algo Practice - Interactive Algorithm Training
Transform your coding interview preparation with curated algorithm problems, auto-generated code templates, and instant test feedback.
โจ Features
- ๐ 100+ Algorithm Problems - Carefully selected from classic interview questions
- ๐๏ธ Three Difficulty Levels - Easy, Medium, Hard with progressive learning path
- ๐ป Dual Language Support - Java & Python templates with identical test cases
- โ Built-in Testing - 5-8 test cases per problem including edge cases
- ๐ Progress Tracking - Auto-maintained history to avoid duplicates
- ๐ Learning Oriented - Hints provided without giving away solutions
- ๐ Ready to Run - Complete code templates with main entry points
๐ Quick Start
Basic Usage
User: ๅบ็ฎๆณ้ข / ๅท้ข / ็ป็ฎๆณ / algo practice / ๆฅไธ้้ข
The skill will:
- Ask for your preferred difficulty level
- Generate a unique problem you haven't seen
- Create ready-to-code templates in both Java and Python
- Track your progress automatically
Example Interaction
User: ๅท้ข
AI: [Asks for difficulty preference]
User: Medium
AI: [Generates problem with templates]
๐ Workflow
Step 1: Check Problem History
Read algo_history.md from the workspace root to track previously assigned problems and ensure no duplicates.
# Algorithm Practice History
| # | Problem Name | Difficulty | Category | Date |
|---|-------------|------------|----------|------|
| 1 | TwoSum | Easy | Array, Hash Table | 2026-03-27 |
Step 2: Ask Difficulty Preference
Use the AskUserQuestion tool:
Question: "Which difficulty level would you like?"
Options:
- ๐ข Easy - Basic data structures & simple logic, perfect for warm-up
- ๐ก Medium - Requires algorithmic thinking, covers common patterns
- ๐ด Hard - Advanced algorithms, optimization, complex data structures
Step 3: Generate Problem
Create an original algorithm problem with:
Problem Structure
- Title: PascalCase format (e.g.,
LongestSubstring,MergeIntervals) - Difficulty Badge: ๐ข Easy / ๐ก Medium / ๐ด Hard
- Description: Clear Chinese explanation of input/output requirements
- Examples: Minimum 2 examples with input/output pairs
- Constraints: Data ranges, time/space complexity requirements
- Hints: Direction hints without revealing the solution
Problem Categories (Rotate through these)
Arrays, Strings, Linked Lists, Trees, Graphs, Dynamic Programming, Greedy, Backtracking, Sorting, Searching, Stack/Queue, Hash Tables, Two Pointers, Sliding Window, Bit Manipulation, BFS/DFS, Divide & Conquer
Step 4: Create Code Templates
Java Template: java/\x3CProblemName>.java
import java.util.*;
public class \x3CProblemName> {
/**
* TODO: Implement your algorithm here
*
* \x3CBrief description of function>
*
* @param \x3Cparameter description>
* @return \x3Creturn value description>
*/
public \x3CReturnType> \x3CmethodName>(\x3CParameters>) {
// Write your code here
return \x3Cdefault value>;
}
public static void main(String[] args) {
\x3CProblemName> solution = new \x3CProblemName>();
int passed = 0;
int total = 0;
// Test Case 1: Normal case
total++;
\x3CType> result1 = solution.\x3CmethodName>(\x3Cinput1>);
if (\x3Ccheck if result1 equals expected1>) {
System.out.println("Test Case " + total + ": โ
Pass");
passed++;
} else {
System.out.println("Test Case " + total + ": โ Fail");
System.out.println(" Input: \x3Cinput description>");
System.out.println(" Expected: \x3Cexpected output>");
System.out.println(" Actual: " + result1);
}
// Test Case 2-N: Include edge cases (minimum 5 total)
// Must cover: normal cases, boundary cases, special cases
System.out.println("\
Results: " + passed + "/" + total + " Passed");
if (passed == total) {
System.out.println("๐ All tests passed!");
} else {
System.out.println("๐ช Keep trying! Review the failed cases above.");
}
}
}
Python Template: python/\x3Cproblem_name>.py
from typing import List, Optional
class Solution:
def \x3Cmethod_name>(self, \x3Cparameters>) -> \x3Creturn_type>:
"""
TODO: Implement your algorithm here
\x3CBrief description of function>
Args:
\x3Cparameter description>
Returns:
\x3Creturn value description>
"""
# Write your code here
pass
def main():
solution = Solution()
passed = 0
total = 0
# Test Case 1: Normal case
total += 1
result1 = solution.\x3Cmethod_name>(\x3Cinput1>)
if result1 == \x3Cexpected1>:
print(f"Test Case {total}: โ
Pass")
passed += 1
else:
print(f"Test Case {total}: โ Fail")
print(f" Input: \x3Cinput description>")
print(f" Expected: \x3Cexpected output>")
print(f" Actual: {result1}")
# Test Case 2-N: Include edge cases (minimum 5 total)
# Must cover: normal cases, boundary cases, special cases
print(f"\
Results: {passed}/{total} Passed")
if passed == total:
print("๐ All tests passed!")
else:
print("๐ช Keep trying! Review the failed cases above.")
if __name__ == "__main__":
main()
Test Case Requirements
- Minimum 5 test cases per problem
- Must include:
- Normal/typical cases
- Edge cases (empty input, single element, maximum values)
- Special cases (negative numbers, duplicates, etc.)
- Consistency: Java and Python test cases must match
- Proper comparison: Use
Arrays.equals()for Java arrays,==for Python lists
Step 5: Update Progress Tracking
Append the problem to algo_history.md in workspace root:
# Algorithm Practice History
| # | Problem Name | Difficulty | Category | Date |
|---|-------------|------------|----------|------|
| 1 | TwoSum | Easy | Array, Hash Table | 2026-03-27 |
| 2 | MergeIntervals | Medium | Array, Sorting | 2026-03-27 |
Auto-increment the sequence number and use current date.
Step 6: Present Problem to User
Display the complete problem with:
- ๐ Problem Title & Difficulty Badge
- ๐ Problem Description (clear Chinese explanation)
- ๐ก Examples (input/output pairs)
- โ๏ธ Constraints (data ranges, complexity requirements)
- ๐ฏ Hints (direction without solution)
- ๐ File Locations:
- Java:
java/\x3CProblemName>.java - Python:
python/\x3Cproblem_name>.py
- Java:
- ๐ Next Steps: "Implement your solution and run the file to test!"
๐ก Pro Tips for Users
How to Use Effectively
- Start Easy - Build confidence with fundamentals
- Think First - Try to solve before looking at hints
- Test Thoroughly - Run both Java and Python versions
- Track Progress - Check
algo_history.mdfor your journey - Practice Regularly - Consistency beats intensity
Running Your Solutions
# Java
cd java
javac \x3CProblemName>.java && java \x3CProblemName>
# Python
python python/\x3Cproblem_name>.py
Common Workflow
- Read problem carefully
- Think about approach (don't code immediately!)
- Write solution in the TODO section
- Run tests to verify
- Debug failed cases
- Optimize if needed
- Move to next problem
๐ฏ Problem Quality Standards
- โ Interview-Relevant: Based on real coding interview questions
- โ Well-Tested: 5-8 comprehensive test cases
- โ Progressive Difficulty: Clear learning path
- โ No Duplicates: Tracked via history file
- โ Bilingual: Java + Python with consistent logic
- โ Production-Ready: Ready to compile and run
๐ ๏ธ Technical Requirements
- Method signatures must be clear and type-safe
- Java filename MUST match public class name
- Python filename uses snake_case convention
- Problem titles use PascalCase (e.g.,
ValidParentheses) - NEVER include solutions or implementation hints in code files
- Test case expected outputs MUST be correct
- Create
java/andpython/directories if they don't exist
๐ Target Audience
- ๐จโ๐ป Job seekers preparing for coding interviews
- ๐ Computer science students learning algorithms
- ๐ Developers wanting to practice problem-solving
- ๐ฑ Beginners starting their algorithm journey
- ๐ Advanced programmers tackling hard problems
๐ Success Metrics
After using this skill, users should:
- Have working code templates ready to implement
- Understand the problem clearly with examples
- Know the constraints and edge cases
- Feel motivated to solve and test their solution
- Track their progress over time
๐ก Tip: This skill is perfect for daily algorithm practice. Try solving 1-2 problems per day to build strong problem-solving skills!
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install algorithm-practice - After installation, invoke the skill by name or use
/algorithm-practice - Provide required inputs per the skill's parameter spec and get structured output
What is Train your mind with algorithms?
๐ฏ Interactive algorithm practice with 100+ problems across Easy/Medium/Hard difficulties. Generates ready-to-run code templates in Java & Python with built-... It is an AI Agent Skill for Claude Code / OpenClaw, with 73 downloads so far.
How do I install Train your mind with algorithms?
Run "/install algorithm-practice" in the OpenClaw or Claude Code chat to install it in one step โ no extra setup required.
Is Train your mind with algorithms free?
Yes, Train your mind with algorithms is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Train your mind with algorithms support?
Train your mind with algorithms is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Train your mind with algorithms?
It is built and maintained by KadiJIN (@kadijin); the current version is v1.0.0.