【每日算法Day 63】LeetCode 第 179 场周赛题解
起床打开 leetcode,准备看看今天搞点啥题目水一水的,突然发现周赛还剩 1 小时整。看了眼题目也都挺简单的,就把 4 道题都做掉了。
LeetCode 5352. 生成每种字符都是奇数个的字符串
题目链接
力扣
题解
这题就没什么好说的了,如果 是奇数,那就生成 个 。如果 是偶数,那就生成 个 ,再加上 个 。
代码(python)
class Solution:def generateTheString(self, n: int) -> str:if n % 2 == 0:return "a"+"b"*(n-1)return "a"*n
LeetCode 5353. 灯泡开关 III
题目链接
力扣
题解
如果某一个时刻灯都是蓝色的,等价于所有的亮灯都连续排列在数组最左边,没有间断。所以只需要判断当前时刻亮灯的最大编号是否等于亮灯的数量就行了。
比赛的时候傻 x 了,第一个想到的竟然是树状数组,于是直接把模板套过来过了。
代码(c++)
class Solution {public:int numTimesAllBlue(vector<int>& light) {int res = 0, maxx = 0;for (int i = 0, sz = light.size(); i < sz; ++i) {maxx = max(maxx, light[i]);if (maxx == i + 1) res++;}return res;}
};
树状数组:
class Solution {public:static const int MAXN = 50010;int bit[MAXN];int numTimesAllBlue(vector<int>& light) {memset(bit, 0, sizeof bit);int maxx = 0, res = 0;for (int i = 0, sz = light.size(); i < sz; ++i) {add(light[i], 1);maxx = max(maxx, light[i]);if (sum(maxx) == maxx) res++;}return res;}int lowbit(int x) {return x&(-x);}void add(int i, int x) {while (i < MAXN) {bit[i] += x;i += lowbit(i);}}void sub(int i, int x) {while (i < MAXN) {bit[i] -= x;i += lowbit(i);}}int sum(int i) {int s = 0;while (i > 0) {s += bit[i];i -= lowbit(i);}return s;}
};
LeetCode 5354. 通知所有员工所需的时间
题目链接
力扣
题解
首先根据 数组来建图,边权就是父结点到子结点的通知时间。然后从根结点开始做 dfs ,求出根结点到每个叶子结点的路径长度的最大值。
代码(c++)
class Solution {public:static const int N = 100010;vector<int> G[N];int numOfMinutes(int n, int headID, vector<int>& manager, vector<int>& informTime) {for (int i = 0; i < n; ++i) {if (manager[i] != -1) {G[manager[i]].push_back(i);}}return f(headID, informTime);}int f(int headID, vector<int>& informTime) {if (!informTime[headID]) return 0;int maxx = 0;for (int i = 0, sz = G[headID].size(); i < sz; ++i) {maxx = max(maxx, f(G[headID][i], informTime));}return maxx+informTime[headID];}
};
LeetCode 5355. T 秒后青蛙的位置
题目链接
力扣
题解
首先建图,然后从 号结点开始,还是用 dfs 。每往下走一次,时间 减 。如果 或者到了叶子结点了,就判断结点是否为 ,是就返回 ,不是就返回 。每次概率除以当前结点的子结点个数,然后再乘上所有子结点 dfs 结果的最大值(因为结果不是 就是正确概率)。
代码(c++)
class Solution {public:double frogPosition(int n, vector<vector<int>>& edges, int t, int target) {if (n == 1) return 1.0;vector<vector<int>> G(110);for (int i = 0; i < n-1; ++i) {int u = edges[i][0], v = edges[i][1];G[u].push_back(v);G[v].push_back(u);}return dfs(1, 0, t, target, G);}double dfs(int u, int fa, int t, int target, vector<vector<int>>& G) {int sz = G[u].size();if (!t || (fa && sz == 1)) {if (u == target) return 1;else return 0;} double p = 1.0 / (fa ? sz-1 : sz), maxx = 0;for (int i = 0, sz = G[u].size(); i < sz; ++i) {int v = G[u][i];if (v == fa) continue;maxx = max(maxx, dfs(v, u, t-1, target, G));}return p*maxx;}
};
【每日算法Day 63】LeetCode 第 179 场周赛题解相关推荐
- LeetCode第 227 场周赛题解
LeetCode第 227 场周赛题解 检查数组是否经排序和轮转得到 原题链接 https://leetcode-cn.com/problems/check-if-array-is-sorted-an ...
- leetcode 第294场周赛题解
rank 529 / 6640,第4题一共过了100 / 6640来人,基本上就是前三题比手速了: 第一题 .字母在字符串中的百分比 给你一个字符串 s 和一个字符 letter ,返回在 s 中等于 ...
- LeetCode 第187场周赛 题解
文章目录 a.旅行终点站 a.题目 a.分析 a.参考代码 b.是否所有 1 都至少相隔 k 个元素 b.题目 b.分析 b.参考代码 c.绝对差不超过限制的最长连续子数组 c.题目 c.分析 c.参 ...
- java回文数算法for_【Java】【每日算法/刷穿 LeetCode】9. 回文数(简单)
首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]9. 回文数(简单) 宫水三叶发布于 今天 15:30 题目描述 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从 ...
- 重复次数最多的 子串_每日算法系列【LeetCode 424】替换后的最长重复字符
题目描述 给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次.在执行上述操作后,找到包含重复字母的最长子串的长度. 示例1 输入: s = &quo ...
- 整数反转leetcode java_【Java】【每日算法/刷穿 LeetCode】7. 整数反转(简单)
首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]7. 整数反转(简单) 宫水三叶发布于 今天 12:10 题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数 ...
- java编写字母z算法_【Java】【每日算法/刷穿 LeetCode】6. Z 字形变换(中等)
首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]6. Z 字形变换(中等) 宫水三叶发布于 今天 12:03 题目描述 将一个给定字符串 s 根据给定的行数 numRows , ...
- java 最长回文_【Java】【每日算法/刷穿 LeetCode】5. 最长回文子串(中等)
首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]5. 最长回文子串(中等) 宫水三叶发布于 今天 12:00 题目描述 给你一个字符串 s,找到 s 中最长的回文子串. 示例 ...
- LeetCode 第 194 场周赛
LeetCode 第 194 场周赛 数组异或操作 思路和代码 保证文件名唯一 思路及代码 避免洪水泛滥 思路及代码 找到最小生成树里的关键边和伪关键边 思路及代码 这次周赛比以往难很多. 数组异或操 ...
- LeetCode第176场周赛(Weekly Contest 176)解题报告
又是一周掉分之旅,我发现,LeetCode周赛的数据好水,所以有的时候,实在没思路,先暴力解决试试(即使分析出时间复杂度会超时),比如第二题和第三题都可以暴力通过,GG思密达. 这周主要使用了数据结构 ...
最新文章
- firefox显示nagios
- 用g.raphael.js高速绘制饼图、柱状图、点状图、折线图(下)
- CentOS7 Zabbix3.4安装
- iPhone OS框架 介绍
- JavaScript中一个对象数组按照另一个数组排序
- Ubuntu系列10.04、11.04、12.04等虚拟机中安装VMware Tools
- eclipse运行maven项目,tomcat启动报错
- latex参考文献编译不成功
- 【论文阅读】Multitask Prompted Training Enables Zero-shot Task Generalization
- Vue2在使用Element-UI的分页组件遇到的问题(如PageSize,PageNum等)
- Android-APP内存优化
- App Inventor自定义插件Extension
- Linux+bridge做透明网桥
- mysql 重启监听器_Oracle Lsnrctl监听器的启动和关闭
- 异常解决java.lang.ClassNotFoundException: org.springframework.boot.actuate.endpoint.PublicMetrics
- win10聚焦功能失效的解决方法
- 机器学习——特征工程
- 无人驾驶系统是个复杂的计算机系统,无人驾驶汽车安全行驶的三大系统
- win10系统要求配置_Win10 1909 系统的优点与缺点和配置要求与优化技巧
- 用计算机进行计算ppt,《用计算器进行运算》课件.ppt
热门文章
- 菜鸟学开店—最简收银POS系统
- easyui-datagrid 列单击事件
- leaflet 的 marker 弹框 iframe 嵌套代码
- bzoj5194: [Usaco2018 Feb]Snow Boots
- [转]【NODE】用WS模块创建加密的WS服务(WSS)
- Zookeeper启动失败,报错 can not open chanel to 2
- HALCON-FUZZY检测用于开关引脚测量
- 题目1088:剩下的树(小端快排+大端判断边界)
- [转载]MySQL优化之索引的运用(2)
- .NET基础拾遗(6)ADO.NET与数据库开发基础