零基础学pytho 网站开发,煤炭网站建设企业,网站被人做跳转改如何举报,培训网站建设报价单955 神仙公司名单#xff08;非外企#xff09; 往常爆料最多的 955 神仙公司名单通常都是集中在一线城市的外企。 例如下面这张最为流行的名单图#xff1a; 最近牛客网上有同学整理出了非外企的版本#xff0c;其中不乏一些耳熟能详的互联网产品。 随手把名单分享给大家。… 955 神仙公司名单非外企 往常爆料最多的 955 神仙公司名单通常都是集中在一线城市的外企。 例如下面这张最为流行的名单图 最近牛客网上有同学整理出了非外企的版本其中不乏一些耳熟能详的互联网产品。 随手把名单分享给大家。 原文地址https://www.nowcoder.com/discuss/560023184054001664 以下为精简过的原文内容 ... 回归主线。 来一道银行岗刚考过的算法题。 题目描述 平台LeetCode 题号636 有一个单线程 CPU 正在运行一个含有 n 道函数的程序。 每道函数都有一个位于 0 和 n-1 之间的唯一标识符。 函数调用存储在一个调用栈上 当一个函数调用开始时它的标识符将会推入栈中。而当一个函数调用结束时它的标识符将会从栈中弹出。标识符位于栈顶的函数是当前正在执行的函数。每当一个函数开始或者结束时将会记录一条日志包括函数标识符、是开始还是结束、以及相应的时间戳。 给你一个由日志组成的列表 logs 其中 logs[i] 表示第 i 条日志消息该消息是一个按 {function_id}:{start | end}:{timestamp} 进行格式化的字符串。 例如0:start:3 意味着标识符为 0 的函数调用在时间戳 3 的 起始开始执行 而 1:end:2 意味着标识符为 1 的函数调用在时间戳 2 的末尾结束执行。 注意函数可以调用多次可能存在递归调用 。 函数的「独占时间」定义是在这个函数在程序所有函数调用中执行时间的总和调用其他函数花费的时间不算该函数的独占时间。 例如如果一个函数被调用两次一次调用执行 2 单位时间另一次调用执行 1 单位时间那么该函数的独占时间为 2 1 3 。 以数组形式返回每个函数的独占时间其中第 i 个下标对应的值表示标识符 i 的函数的独占时间。 示例 1 输入n 2, logs [0:start:0,1:start:2,1:end:5,0:end:6]输出[3,4]解释函数 0 在时间戳 0 的起始开始执行执行 2 个单位时间于时间戳 1 的末尾结束执行。 函数 1 在时间戳 2 的起始开始执行执行 4 个单位时间于时间戳 5 的末尾结束执行。 函数 0 在时间戳 6 的开始恢复执行执行 1 个单位时间。 所以函数 0 总共执行 2 1 3 个单位时间函数 1 总共执行 4 个单位时间。 示例 2 输入n 1, logs [0:start:0,0:start:2,0:end:5,0:start:6,0:end:6,0:end:7]输出[8]解释函数 0 在时间戳 0 的起始开始执行执行 2 个单位时间并递归调用它自身。函数 0递归调用在时间戳 2 的起始开始执行执行 4 个单位时间。函数 0初始调用恢复执行并立刻再次调用它自身。函数 0第二次递归调用在时间戳 6 的起始开始执行执行 1 个单位时间。函数 0初始调用在时间戳 7 的起始恢复执行执行 1 个单位时间。所以函数 0 总共执行 2 4 1 1 8 个单位时间。 示例 3 输入n 2, logs [0:start:0,0:start:2,0:end:5,1:start:6,1:end:6,0:end:7]输出[7,1]解释函数 0 在时间戳 0 的起始开始执行执行 2 个单位时间并递归调用它自身。函数 0递归调用在时间戳 2 的起始开始执行执行 4 个单位时间。函数 0初始调用恢复执行并立刻调用函数 1 。函数 1在时间戳 6 的起始开始执行执行 1 个单位时间于时间戳 6 的末尾结束执行。函数 0初始调用在时间戳 7 的起始恢复执行执行 1 个单位时间于时间戳 7 的末尾结束执行。所以函数 0 总共执行 2 4 1 7 个单位时间函数 1 总共执行 1 个单位时间。 示例 4 输入n 2, logs [0:start:0,0:start:2,0:end:5,1:start:7,1:end:7,0:end:8]输出[8,1] 示例 5 输入n 1, logs [0:start:0,0:end:0]输出[1] 提示 两个开始事件不会在同一时间戳发生 两个结束事件不会在同一时间戳发生 每道函数都有一个对应 start 日志的 end 日志 模拟 我们使用「栈」来模拟执行过程当一个函数被调用op start时压入栈内当函数调用完成op end时从栈顶弹出此时栈顶元素必然是该结束函数的入栈记录使用变量 cur 记录当前时间。 从前往后处理所有的 根据 是属于函数调用还是函数结束进行分情况讨论 当 为函数调用此时从该函数的调用发起时间 ts 到上一次记录的当前时间都是前一函数的执行时间因此可以将 ts - cur 累加到栈帧中的前一函数。即若栈不为空则将该时间累加到栈顶对应的函数上然后将 入栈同时更新当前时间 当 为函数结束此时栈顶元素必然是该函数的调用记录此时 的结束时间与上一次记录的当前时间的时长 ts - cur 1必然是该函数的执行时间将其累加到当前函数中并更新当前时间。 Java 代码 class Solution { public int[] exclusiveTime(int n, ListString logs) { int[] ans new int[n]; DequeInteger d new ArrayDeque(); int cur -1; for (String log : logs) { String[] ss log.split(:); int idx Integer.parseInt(ss[0]), ts Integer.parseInt(ss[2]); if (ss[1].equals(start)) { if (!d.isEmpty()) ans[d.peekLast()] ts - cur; d.addLast(idx); cur ts; } else { int func d.pollLast(); ans[func] ts - cur 1; cur ts 1; } } return ans; }} C 代码 class Solution {public: vectorint exclusiveTime(int n, vectorstring logs) { vectorint ans(n, 0); stackint s; int cur -1; for (auto log : logs) { istringstream ss(log); string buf; vectorstring tokens; while (getline(ss, buf, :)) { tokens.push_back(buf); } int idx stoi(tokens[0]), ts stoi(tokens[2]); if (tokens[1] start) { if (!s.empty()) ans[s.top()] ts - cur; s.push(idx); cur ts; } else { ans[s.top()] ts - cur 1; s.pop(); cur ts 1; } } return ans; }}; Python 代码 class Solution: def exclusiveTime(self, n: int, logs: List[str]) - List[int]: ans [0] * n s [] cur -1 for log in logs: ss log.split(:) idx, ts int(ss[0]), int(ss[2]) if ss[1] start: if s: ans[s[-1]] ts - cur s.append(idx) cur ts else: ans[s.pop()] ts - cur 1 cur ts 1 return ans TypeScript 代码 function exclusiveTime(n: number, logs: string[]): number[] { const ans new Arraynumber(n).fill(0) const stk new Arraynumber() let he 0, ta 0, cur -1 for (let log of logs) { const ss log.split(:) const idx Number(ss[0]), ts Number(ss[2]) if (ss[1] start) { if (he ta) ans[stk[ta - 1]] ts - cur stk[ta] idx cur ts } else { const func stk[--ta] ans[func] ts - cur 1 cur ts 1 } } return ans}; 时间复杂度 空间复杂度 最后 给大伙通知一下 全网最低价 LeetCode 会员目前仍可用快来薅羊毛 年度会员有效期加赠两个月; 季度会员有效期加赠两周 年度会员获 66.66 现金红包; 季度会员获 22.22 现金红包 年度会员参与当月丰厚专属实物抽奖中奖率 30%) 专属链接https://leetcode.cn/premium/?promoChannelacoier 更多详情请戳 这里 。 我是宫水三叶每天都会分享算法知识并和大家聊聊近期的所见所闻。 欢迎关注明天见。 更多更全更热门的「笔试/面试」相关资料可访问排版精美的 合集新基地