1.粘贴代码通过gpt翻译成Mermaid代码,生成流程图
public int largestValsFromLabels(int[] values, int[] labels, int numWanted, int useLimit) {
// 将元素按值从大到小排序
PriorityQueue<int[]> pq = new PriorityQueue<>((a, b) -> b[0] - a[0]);
for (int i = 0; i < values.length; i++) {
pq.offer(new int[]{values[i], labels[i]});
}
// 维护每个标签已选择元素的数量
Map<Integer, Integer> selected = new HashMap<>();
// 维护子集 s 和其分数
List<Integer> s = new ArrayList<>();
int score = 0;
while (!pq.isEmpty() && s.size() < numWanted) {
int[] item = pq.poll();
int v = item[0];
int l = item[1];
if (!selected.containsKey(l)) {
selected.put(l, 0);
}
if (selected.get(l) < useLimit) {
s.add(v);
score += v;
selected.put(l, selected.get(l) + 1);
}
}
return score;
}
让chatGPT帮忙翻译代码
接着让它转换成Mermaid代码
graph LR
A[开始] --> B[将元素按值从大到小排序]
B --> C[维护每个标签已选择元素的数量]
C --> D[维护子集 s 和其分数]
B --> E{是否还有未选择的元素?}
C --> E
D --> E
E --> F{已选择的元素个数是否达到 numWanted?}
E --> G{对应标签已选择元素数量是否达到 useLimit?}
G --> H[将该元素加入子集 s 并更新分数和对应标签已选择元素数量]
F --> I[返回子集 s 的分数]
H --> E
打开Online FlowChart & Diagrams Editor - Mermaid Live Editor
粘贴Mermaid语法,生成流程图
2.我们说实现逻辑,gpt转换成 Mermaid语法代码,生成流程图
以consul的工作原理举例
- 当Producer启动的时候,会向Consul发送一个post请求,并向Consul传输自己的IP和Port。 2:Consul 接收到Producer的注册后,每隔10s(默认)会向Producer发送一个健康检查的请求,检验Producer是否健康。
- 当Consumer以Http的方式向Producer发起请求,会先从Consul中拿到一个存储服务IP和Port的临时表,从表中拿到Producer的IP和Port后再发送请求。
- 该临时表每隔10s会更新,只包含有通过了健康检查的Producer。 请帮我使用Mermaid生成流程图
Mermaid代码
graph TD;
A[Producer启动] -->|向Consul发送post请求|B(传输IP和Port);
B --> C(Consul接收注册);
C -->|每隔10s向Producer发送健康检查请求|D{Producer健康};
D -->|返回健康状态|C;
E[Consumer发起请求] -->|从Consul获取存储服务IP和Port的临时表|F(获取Producer IP和Port);
F --> G[向Producer发送请求];
C -->|更新临时表中的Producer列表|H((临时表));
H -->|每隔10s更新|C;
生成流程图
3.数据库表E-R图【方向】
我们把数据库表给gpt,让他把这几张表按照我们的要求关联起来,让它画出e-r图(生成E-R图代码),我们粘贴到E-R图 工具或网站,生成E-R图
哎,当初毕设的时候要是有gpt,能省好多画图时间.......
总结
通过chatGPT 翻译代码 或 整理逻辑 生成流程图会有助于我们去理解代码和实现逻辑
同时能够帮我们节省画图时间,当然也有一些问题,它生成的Mermaid代码可能会有一些格式问题
比如加了中文逗号,直接粘贴到Mermaid Live Editor会报错,我们需要自行调整或者在输入实现逻辑的时候尽可能描述清楚,条理清晰一些。