周赛链接

https:// leetcode-cn.com/contest /weekly-contest-181

LeetCode 5364. 按既定顺序创建目标数组

题目链接

https:// leetcode-cn.com/problem s/create-target-array-in-the-given-order/

题解

c++ vector 自带 insert 函数,直接用就行了。

代码(c++)

        class Solution {public:vector<int> createTargetArray(vector<int>& nums, vector<int>& index) {int n = nums.size();vector<int> target;for (int i = 0; i < n; ++i) {target.insert(target.begin()+index[i], nums[i]);}return target;}
};

LeetCode 5178. 四因数

题目链接

https:// leetcode-cn.com/problem s/four-divisors/

题解

直接求出每个数因数个数就行了,对于每个数 ,只需要枚举到 就行了,另外如果因子个数已经大于 了,就直接退出。

代码(c++)

        class Solution {public:int sumFourDivisors(vector<int>& nums) {int res = 0;for (auto x : nums) {int cnt = 0, sum = 0;for (int i = 1; i*i <= x; ++i) {if (i*i == x) {cnt++;break;}if (x%i == 0) {cnt += 2;sum += i + x/i;}if (cnt > 4) break;}if (cnt == 4) res += sum;}return res;}
};

LeetCode 5366. 检查网格中是否存在有效路径

题目链接

https:// leetcode-cn.com/problem s/check-if-there-is-a-valid-path-in-a-grid/

题解

可以用 bfs 或者 dfs ,我这里采用的是 bfs 。

整体框架和普通的 bfs 完全一模一样,那么问题就在于如何判断两个格子能否相连。在代码中体现为 link 函数,我们给它传了三个参数: 表示两个格子的街道标号(题面里解释了), 表示两个格子的位置关系(:左右,:右左,:上下,:下上)。

其中 都可以通过交换 的顺序,来分别转换成

对于 来说,左右能连接的情况,只有右边有出口的格子()接上左边有入口的格子()。

对于 来说,上下能连接的情况,只有下边有出口的格子()接上上边有入口的格子()。

其他情况全部无法连接。

这样最后 bfs 遍历到了 就能到达终点,否则就无法到达。

代码(c++)

        class Solution {public:int link(int a, int b, int d) {if (d == 1 || d == 3) {d--;swap(a, b);}if (d == 0) return (a==1||a==4||a==6)&&(b==1||b==3||b==5);if (d == 2) return (a==2||a==3||a==4)&&(b==2||b==5||b==6);return false;}bool hasValidPath(vector<vector<int>>& grid) {int n = grid.size(), m = grid[0].size();int dx[4] = {0, 0, 1, -1};int dy[4] = {1, -1, 0, 0};vector<vector<int>> vis(n, vector<int>(m, 0));queue<pair<int, int>> Q;Q.push({0, 0});vis[0][0] = 1;while (!Q.empty()) {pair<int, int> p = Q.front();Q.pop();int x = p.first, y = p.second;if (x == n-1 && y == m-1) return true;for (int i = 0; i < 4; ++i) {int nx = x + dx[i], ny = y + dy[i];if (0 <= nx && nx < n && 0 <= ny && ny < m && !vis[nx][ny] && link(grid[x][y], grid[nx][ny], i)) {vis[nx][ny] = 1;Q.push({nx, ny});}}}return false;}
};

LeetCode 5367. 最长快乐前缀

题目链接

https:// leetcode-cn.com/problem s/longest-happy-prefix/

题解

kmp 模板题,细节就不说了,网上教程漫天铺地都是的。就一个函数,是个模板直接用就行了。最后求出来的 就表示了 子串的最长相同前缀后缀的长度,所以答案就是

代码(c++)

        class Solution {public:void getNext(string s, vector<int>& next) {int n = s.size();next[0] = 0;for (int q = 1, k = 0; q < n; ++q) {while (k > 0 && s[q] != s[k])k = next[k-1];if (s[q] == s[k]) k++;next[q] = k;}}string longestPrefix(string s) {int n = s.size();vector<int> next(n);getNext(s, next);return s.substr(0, next[n-1]);}
};

【每日算法Day 77】LeetCode 第 181 场周赛题解相关推荐

  1. LeetCode第 227 场周赛题解

    LeetCode第 227 场周赛题解 检查数组是否经排序和轮转得到 原题链接 https://leetcode-cn.com/problems/check-if-array-is-sorted-an ...

  2. LeetCode 第187场周赛 题解

    文章目录 a.旅行终点站 a.题目 a.分析 a.参考代码 b.是否所有 1 都至少相隔 k 个元素 b.题目 b.分析 b.参考代码 c.绝对差不超过限制的最长连续子数组 c.题目 c.分析 c.参 ...

  3. leetcode 第294场周赛题解

    rank 529 / 6640,第4题一共过了100 / 6640来人,基本上就是前三题比手速了: 第一题 .字母在字符串中的百分比 给你一个字符串 s 和一个字符 letter ,返回在 s 中等于 ...

  4. java回文数算法for_【Java】【每日算法/刷穿 LeetCode】9. 回文数(简单)

    首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]9. 回文数(简单) 宫水三叶发布于 今天 15:30 题目描述 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从 ...

  5. 重复次数最多的 子串_每日算法系列【LeetCode 424】替换后的最长重复字符

    题目描述 给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次.在执行上述操作后,找到包含重复字母的最长子串的长度. 示例1 输入: s = &quo ...

  6. 整数反转leetcode java_【Java】【每日算法/刷穿 LeetCode】7. 整数反转(简单)

    首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]7. 整数反转(简单) 宫水三叶发布于 今天 12:10 题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数 ...

  7. java编写字母z算法_【Java】【每日算法/刷穿 LeetCode】6. Z 字形变换(中等)

    首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]6. Z 字形变换(中等) 宫水三叶发布于 今天 12:03 题目描述 将一个给定字符串 s 根据给定的行数 numRows , ...

  8. java 最长回文_【Java】【每日算法/刷穿 LeetCode】5. 最长回文子串(中等)

    首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]5. 最长回文子串(中等) 宫水三叶发布于 今天 12:00 题目描述 给你一个字符串 s,找到 s 中最长的回文子串. 示例 ...

  9. LeetCode 第 194 场周赛

    LeetCode 第 194 场周赛 数组异或操作 思路和代码 保证文件名唯一 思路及代码 避免洪水泛滥 思路及代码 找到最小生成树里的关键边和伪关键边 思路及代码 这次周赛比以往难很多. 数组异或操 ...

  10. LeetCode第187场周赛(Weekly Contest 187)解题报告

    差点又要掉分了,还好最后几分钟的时候,绝杀 AK.干巴爹!!! 第一题:思路 + 模拟暴力. 第二题:线性扫描. 第三题:双指针(滑动窗口) + 优先队列. 第四题:暴力每一行最小 k 个 + 优先队 ...

最新文章

  1. ​相似算法比较:递归、分治、动态规划、贪心、回溯、分支限界​
  2. java 日志输出 log4j 简介
  3. Golang入门教程(四)变量声明
  4. 云炬随笔20180421
  5. bootstrap-徽章-链接
  6. QQ输入法 for iPhone2.3
  7. 实战OpenPose项目1:开篇使用文档
  8. 计算矩阵A与矩阵B的欧式距离
  9. ios企业证书过期更新及推送证书更新(推荐)
  10. Xcelsius 使用XML做为数据源 ----利用ASP与数据库进行交互,即时刷新
  11. 解决cherry pick提交报错问题
  12. Kronecker积及其等式性质
  13. 1014长短期记忆网络(LSTM)
  14. 25岁到30岁的女生还可以长高么? 非药物
  15. 云呐:资产密集型企业固定资产管理系统的基本功能特点
  16. 关于微服务和 Java 需要知道的 5 件事
  17. 九零后看什么网络电视
  18. 仿生学导论学习笔记——第二章
  19. html的font字号1-7,CSS 字体大小font-size设置
  20. linux free函数头文件,Linux_Linux下malloc/free与new/delete的区别,由于malloc/free是库函数,不是 - phpStudy...

热门文章

  1. 城市交通_ssl1636_floyd
  2. 简单的Android文件浏览器(附源代码)
  3. Mysql缺少可执行的命令
  4. 标准BST二叉搜索树写法
  5. [译] 第二天:AngularJS - 认识AngularJS
  6. MongoDB是我想要的存储么?
  7. Openfire Meetings插件是一个包含各种Jitsi项目(如VideoBridge和Meet)的实现
  8. 666的vue.mixin
  9. 如何使用JSTL及JSTL标签库
  10. 前端简单h5播放器的制作