当前位置: 首页 > news >正文

LeetCode 刷题【22. 括号生成】

22. 括号生成

自己做(憋不出来)

看题解

解1:暴力解(遍历所有可能)

解2:优化的暴力解

解3:递归

class Solution {shared_ptr<vector<string>> cache[100] = {nullptr};
public:shared_ptr<vector<string>> generate(int n) {if (cache[n] != nullptr)return cache[n];if (n == 0) {cache[0] = shared_ptr<vector<string>>(new vector<string>{""});} else {auto result = shared_ptr<vector<string>>(new vector<string>);for (int i = 0; i != n; ++i) {auto lefts = generate(i);auto rights = generate(n - i - 1);for (const string& left : *lefts)for (const string& right : *rights)result -> push_back("(" + left + ")" + right);}cache[n] = result;}return cache[n];}vector<string> generateParenthesis(int n) {return *generate(n);}
};

今日总结

告辞,玩不了一点,这怎么想到复杂度这么高的暴力解(脑子都自动排除了),还有都没有考虑n有上限并且输出结果数量有限的问题,之前就屡次被溢出折磨的不成人样。这么玩的话,面向结果编程——列表

http://www.dtcms.com/a/306896.html

相关文章:

  • 敏捷与SCRUM三大支柱:数字化时代的韧性引擎
  • 【解决方案】frida-ps -Ua报错unable to perform ptrace pokedata: I/O error
  • [Python] -进阶理解10- 用 Python 实现简易爬虫框架
  • 外键列索引优化:加速JOIN查询的关键
  • 嵌入式摄像头深度解析
  • Ubuntu虚拟机介绍、命令、安装软件指令(一)
  • CNN实战项目
  • ica1靶场攻略
  • 二叉树算法之【二叉树的层序遍历】
  • python | numpy小记(八):理解 NumPy 中的 `np.meshgrid`
  • C++ Qt网络编程实战:跨平台TCP调试工具开发
  • 基于SpringBoot+MyBatis+MySQL+VUE实现的便利店信息管理系统(附源码+数据库+毕业论文+远程部署)
  • 虚幻基础:模型碰撞体
  • [Qt]QString 与Sqlite3 字符串互动[汉字不乱码]
  • C#垃圾回收机制:原理与实践
  • PyTorch 生态四件套:从图片、视频到文本、语音的“开箱即用”实践笔记
  • 电子电气架构 --- 汽车电子电气EEA架构开发流程
  • 通义万相文生图模型wan2.2-t2i-flash和wan2.2-t2i-plus全维度深度对比
  • Java试题-选择题(1)
  • 【C++】适配器模式手搓STL的stack和queue
  • LeetCode Hot 100:15. 三数之和
  • Nuxt3 全栈作品【通用信息管理系统】角色管理(含配置权限 -- 菜单权限 vs 操作权限)
  • 差分数组前缀和优化,降低时间复杂度
  • vue+elementui+vueCropper裁剪上传图片背景颜色为黑色解决方案
  • ‌我的第一个开源项目:跃动的心
  • 物流分拣漏检率↓78%!陌讯动态光流算法在包裹移动识别的技术突破
  • GCC链接技术深度解析:性能与空间优化
  • [mcp: McpSchema]-源码分析
  • 第1课:向量与矩阵运算
  • 搭建实时足球比分系统从零到一的实战指南