官方点名今天是阿里内部全面卸载 Claude Code 的最后期限从阿里内部公告全面封禁到今天足足一周中间还发生了一些事儿。例如工信部点名 Claude Code 存在安全后门隐患。按道理国家层面的政策是要比企业层面的要更加保险。为什么阿里是全面封禁而工信部仅是提示风险很简单双方面对的问题不是同一个问题。工信部面对的是公共风险管理考虑的对象是全民级决定是提示风险还是全面封禁是看软件是否已经造成了普遍性的安全漏洞或者大规模的影响。虽然 Claude Code 是绝大多数程序员的选择但程序员毕竟是少部分人群影响范围有限还不足以上升到全民禁用。再一个即使是对程序员来说提示风险是要比建议禁用效果更好。后者大家要决策的是离开这个工具的成本这很难但前者只是升级建议大多数人都会听从的。所以这是工信部建议的巧妙之处在风险可控的前提下它选了一个易于传播易于执行的风险提示而不是大家可能会选择性无视的全面禁用。...回归主题来一道和「阿里巴巴」相关的算法题。题目描述平台LeetCode题号1441给你一个数组target和一个整数n。每次迭代需要从list {1,2,3...,}中依次读取一个数字。请使用下述操作来构建目标数组targetPush从list中读取一个新元素 并将其推入数组中。Pop删除数组中的最后一个元素。如果目标数组构建完成就停止读取更多元素。题目数据保证目标数组严格递增并且只包含1到n之间的数字。请返回构建目标数组所用的操作序列。如果存在多个可行方案返回任一即可。示例 1输入target [1,3], n 3输出[Push,Push,Pop,Push]解释读取 1 并自动推入数组 - [1]读取 2 并自动推入数组然后删除它 - [1]读取 3 并自动推入数组 - [1,3]示例 2输入target [1,2,3], n 3输出[Push,Push,Push]示例 3输入target [1,2], n 4输出[Push,Push]解释只需要读取前 2 个数字就可以停止。提示target严格递增模拟根据题意进行模拟即可。每次我们将当前处理到i压入栈中往答案添加一个Push然后判断当前处理到的i是否最新的栈顶元素是否相同。若不相同则丢弃元素往答案添加一个Pop若存在则将指针j后移直到构建出目标答案。Java 代码classSolution{publicListStringbuildArray(int[] target,intn){ListString ans newArrayList();intm target.length;for(inti 1, j 0; i n j m; i) {ans.add(Push);if(target[j] ! i) ans.add(Pop);elsej;}returnans;}}C 代码classSolution{public:vectorstringbuildArray(vectorint target,intn){intm target.size();vectorstring ans;for(inti 1, j 0; i n j m; i) {ans.push_back(Push);if(target[j] ! i) ans.push_back(Pop);elsej;}returnans;}};Python3 代码classSolution:defbuildArray(self, target: List[int], n: int)- List[str]:ans []m, i, j len(target),1,0whilei nandj m:ans.append(Push)iftarget[j] ! i:ans.append(Pop)else:j 1i 1returnansTypeScript 代码functionbuildArray(target:number[], n:number):string[]{constans newArraystring()constm target.lengthfor(leti 1, j 0; i n j m; i) {ans.push(Push)if(target[j] ! i) ans.push(Pop)elsej}returnans}时间复杂度空间复杂度最后巨划算的 LeetCode 会员优惠通道目前仍可用 ~使用福利优惠通道leetcode.cn/premium/?promoChannelacoier年度会员有效期额外增加两个月季度会员有效期额外增加两周更有超大额专属 和实物 福利每月发放。我是宫水三叶每天都会分享算法知识并和大家聊聊近期的所见所闻。欢迎关注明天见。