Skip to content

fuck-algorithm/leetcode-322-coin-change

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LeetCode 322 零钱兑换问题可视化

本项目实现了LeetCode 322 零钱兑换问题的多种算法(动态规划、记忆化搜索、贪心算法、暴力搜索)的可视化,并提供了交互式的学习体验。项目重点增强了动态规划算法的可视化效果,使其更加直观易懂。

项目特点

  • 多算法支持:实现了四种常见解法的可视化
  • 交互式体验:提供了交互功能,帮助理解算法细节
  • 直观可视化:使用色彩、形状和动画增强视觉效果
  • 教育价值:适合算法初学者和教育工作者使用

运行项目

# 安装依赖
npm install

# 启动开发服务器
npm run dev

# 构建项目
npm run build

可视化功能

动态规划算法可视化

动态规划可视化分三个阶段实现:

  1. 基础增强 - 改进表格样式和交互体验
  2. 状态转移可视化 - 展示依赖箭头、计算过程和公式
  3. 硬币组合可视化 - 以图形方式展示最优硬币组合

其他算法可视化

  • 记忆化搜索 - 展示递归调用栈和记忆表
  • 贪心算法 - 展示贪心选择过程
  • 暴力搜索 - 展示搜索树和遍历过程

项目结构

├── docs/                 # 项目文档
│   └── animation_designs/  # 可视化设计文档
│       └── dp/           # 动态规划可视化文档
├── src/                  # 源代码
│   ├── algorithms/       # 算法实现
│   ├── components/       # React组件
│   ├── styles/           # CSS样式
│   └── types/            # TypeScript类型定义
└── public/               # 静态资源

技术栈

  • React - 用户界面库
  • TypeScript - 类型安全的JavaScript超集
  • D3.js - 数据可视化库
  • Redux - 状态管理
  • Vite - 构建工具

文档

详细的设计和实现文档位于 docs/animation_designs/dp/ 目录下:

贡献

欢迎贡献代码、报告问题或提出改进建议。请查看 贡献指南 了解更多信息。

许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件。

致谢

  • 感谢 LeetCode 提供的算法问题
  • 感谢 D3.js 社区提供的优秀可视化库
  • 感谢所有参与项目的贡献者