Github Action 不同Job共享数据
背景一个.net framwork 项目需要 windows 环境进行构建,构建完之后依赖一些其他的 action 进行一些后续的操作,但这些 action 其中一些不支持 windows 环境。
实现使用actions/upload-artifact@v2上传需要共享的数据。使用actions/download-artifact@v2下载需要共享的数据
12345678910111213141516171819202122232425262728293031323334353637383940name: .NETon: workflow_dispatch: push: branches: - masterjobs: build_job: runs-on: windows-latest steps: - uses: actions/checkout@v2 - name: Setup MSBuild uses: microsoft/setup-msbuild@v1 - name: Setup NuGet ...
两个字符串的最长公共子序列问题-从暴力递归到动态规划优化
动态规划问题的最终解是找到转移方程,但是转移方程很多时候并不是那么好找的。
问题描述给定两个字符串寻找最长公共子序列。例如”ab1c2de3f”和”x1y2z3”的最长子序列为”123”
暴力递归暴力递归的解决思路是很容易想到的。递归函数返回两个字符串 str1,str2 到 index1,index2 位置的最长公共子序列的长度。递归终止的条件是两个串中任意一个串是空串,那么最长公共子序列的长度为 0。到任意一个 index1,index2 位置有以下几种可能性
最长公共子序列的最后一个值和 str1[index1] 、str2[index2]都相同。
最长公共子序列的最后一个值和 str1[index1] 、str2[index2]都不相同。
最长公共子序列的最后一个值和 str1[index1] 、str2[index2]其中一个相同。
这样就把问题拆分成了子问题,使用递归求解。
12345678910111213141516171819class Solution { public int longestCommonSubsequence(String te ...
图的问题模版
有关图的问题算法一般不是很复杂,难点一般在于数据结构,一张图可以用很多种的数据结构表达出来,相对应的同一种算法在不同的数据结构下面就有不同的表现。因此对于图问题有一个自己顺手的数据结构是很有必要的。当遇到不是自己顺手的数据结构可以手写转换器转换成自己熟悉的数据结构。以下是个人顺手的数据结构
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152import java.util.*;class Node { public Integer value; /** * 入度 */ public int in; /** * 出度 */ public int out; public List<Node> next; public List<Edge> edges; public Node(Integer value) { thi ...