当前位置: 首页 > news >正文

上海专业微信网站建设宿迁商城网站建设

上海专业微信网站建设,宿迁商城网站建设,唐山百度提升优化,关于网站关停的申请文章目录 1、找出转圈游戏输家1.1 题目链接1.2 题目描述1.3 解题代码1.4 解题思路 2、相邻值的按位异或2.1 题目链接2.2 题目描述2.3 解题代码2.4 解题思路 3、 矩阵中移动的最大次数3.1 题目链接3.2 题目描述3.3 解题代码3.4 解题思路 4、 统计完全连通分量的数量4.1 题目链接… 文章目录 1、找出转圈游戏输家1.1 题目链接1.2 题目描述1.3 解题代码1.4 解题思路 2、相邻值的按位异或2.1 题目链接2.2 题目描述2.3 解题代码2.4 解题思路 3、 矩阵中移动的最大次数3.1 题目链接3.2 题目描述3.3 解题代码3.4 解题思路 4、 统计完全连通分量的数量4.1 题目链接4.2 题目描述4.3 解题代码4.4 解题思路 打鸡血 1、找出转圈游戏输家 1.1 题目链接 点击跳转到题目位置 1.2 题目描述 n 个朋友在玩游戏。这些朋友坐成一个圈按 顺时针方向 从 1 到 n 编号。从第 i 个朋友的位置开始顺时针移动 1 步会到达第 (i 1) 个朋友的位置1 i n而从第 n 个朋友的位置开始顺时针移动 1 步会回到第 1 个朋友的位置。 游戏规则如下 第 1 个朋友接球。 接着第 1 个朋友将球传给距离他顺时针方向 k 步的朋友。 然后接球的朋友应该把球传给距离他顺时针方向 2 * k 步的朋友。 接着接球的朋友应该把球传给距离他顺时针方向 3 * k 步的朋友以此类推。 换句话说在第 i 轮中持有球的那位朋友需要将球传递给距离他顺时针方向 i * k 步的朋友。 当某个朋友第 2 次接到球时游戏结束。 在整场游戏中没有接到过球的朋友是 输家 。 给你参与游戏的朋友数量 n 和一个整数 k 请按升序排列返回包含所有输家编号的数组 answer 作为答案。 1.3 解题代码 class Solution {unordered_mapint, int hash; public:vectorint circularGameLosers(int n, int k) {int i 0;int m 1;while(hash[i] 0){hash[i] 1;i (i m * k) % n; m;}vectorint res;for(int i 0; i n; i){if(hash[i] 0){res.push_back(i1);}}return res;} };1.4 解题思路 (1) 模拟题首先我们要弄懂模拟规则用一个参数m来表示传到第几次了。然后下标i从0开始不是题目中从1开始其目的就是为了方便进行模运算。 (2) 每次下标变换到的位置是i m * k % n。 (3) 然后用哈希表来记录谁被传到球了如果传了两次则跳出传球过程模拟。 (4) 最后遍历如果哈希表中记录没有传到球则压入结果数组当中。 2、相邻值的按位异或 2.1 题目链接 点击跳转到题目位置 2.2 题目描述 下标从 0 开始、长度为 n 的数组 derived 是由同样长度为 n 的原始 二进制数组 original 通过计算相邻值的 按位异或⊕派生而来。 特别地对于范围 [0, n - 1] 内的每个下标 i 如果 i n - 1 那么 derived[i] original[i] ⊕ original[0] 否则 derived[i] original[i] ⊕ original[i 1] 给你一个数组 derived 请判断是否存在一个能够派生得到 derived 的 有效原始二进制数组 original 。 如果存在满足要求的原始二进制数组返回 true 否则返回 false 。 二进制数组是仅由 0 和 1 组成的数组。 2.3 解题代码 class Solution { public:bool doesValidArrayExist(vectorint derived) {int n derived.size();vectorint copy1(n);vectorint copy2(n);copy1[0] 1;for(int i 1; i n; i){copy1[i] (copy1[i-1]^derived[i-1]);}if(derived[n-1] (copy1[n-1] ^ copy1[0])){return true;}copy2[0] 0;for(int i 1; i n; i){copy2[i] (copy2[i-1]^derived[i-1]);}if(derived[n-1] (copy2[n-1] ^ copy2[0])){return true;}return false;} };2.4 解题思路 (1) 这道题目的核心就在于倒推给结果能否知晓是由什么数组生成而来的。 (2) 根据规则我们假设生成数组第一个元素分别为0和1可以倒推生成数组判断生成得到的数组能否满足题目要求这里用derived[n-1]来判断因为这个数字与生成数组的第一个元素也有关系。 (3) 如果无论生成数组第一个元素是0还是1都不能得到最终的数组那么就可以下判断不可能派生得到derived数组。 3、 矩阵中移动的最大次数 3.1 题目链接 点击跳转到题目位置 3.2 题目描述 给你一个下标从 0 开始、大小为 m x n 的矩阵 grid 矩阵由若干 正 整数组成。 你可以从矩阵第一列中的 任一 单元格出发按以下方式遍历 grid 从单元格 (row, col) 可以移动到 (row - 1, col 1)、(row, col 1) 和 (row 1, col 1) 三个单元格中任一满足值 严格 大于当前单元格的单元格。 返回你在矩阵中能够 移动 的 最大 次数。 3.3 解题代码 class Solution { public:int maxMoves(vectorvectorint grid) {int m grid.size();int n grid[0].size();int dp[m][n];memset(dp, 0, sizeof(dp));for(int j n-2; j 0; --j){for(int i 0; i m; i){int row i;if(row - 1 0){if(grid[row - 1][j 1] grid[i][j]){dp[i][j] max(dp[i][j], dp[row - 1][j 1] 1);}}if(grid[i][j1] grid[i][j]){dp[i][j] max(dp[i][j], dp[i][j1] 1);}if(row 1 m){if(grid[row 1][j 1] grid[i][j]){dp[i][j] max(dp[i][j], dp[row 1][j 1] 1);}}}}int max0 0;for(int i 0; i m; i){max0 max(max0, dp[i][0]);}return max0;} };3.4 解题思路 (1) 根据题目所描述的这道题目的关键在于最终要求的是第一列元素所能移动的最大值。 (2) 我们又可以得出移动的方向永远是向着下一列这代表着我们同一列的每一个元素的所在的位置的最大值只与后面一列的元素有关即考虑使用动态规划来解决问题。 (3) 最终找出第一列的最大值即可。 4、 统计完全连通分量的数量 4.1 题目链接 点击跳转到题目位置 4.2 题目描述 给你一个整数 n 。现有一个包含 n 个顶点的 无向 图顶点按从 0 到 n - 1 编号。给你一个二维整数数组 edges 其中 edges[i] [ai, bi] 表示顶点 ai 和 bi 之间存在一条 无向 边。 返回图中 完全连通分量 的数量。 如果在子图中任意两个顶点之间都存在路径并且子图中没有任何一个顶点与子图外部的顶点共享边则称其为 连通分量 。 如果连通分量中每对节点之间都存在一条边则称其为 完全连通分量 。 4.3 解题代码 class Solution {int Find(vectorint pre, int index){while(pre[index] ! index){index pre[index];}return index;}void Join(vectorint pre, int index1, int index2){index1 Find(pre, index1);index2 Find(pre, index2);if(index1 ! index2){pre[index1] index2;}}unordered_mapint, int hash;unordered_mapint, int point; public:int countCompleteComponents(int n, vectorvectorint edges) {int m edges.size();vectorint pre(100);for(int i 0; i n; i){pre[i] i;}for(int i 0; i m; i){int x edges[i][0]; int y edges[i][1];Join(pre, x, y);}for(int i 0; i m; i){int x edges[i][0];hash[Find(pre, x)];}for(int i 0; i n; i){point[Find(pre, i)];}int res 0;for(int i 0; i n; i){if(i pre[i]){if(hash[i] (point[i] * (point[i] - 1)) / 2){res;}}}return res;} };4.4 解题思路 (1) 这道题目是问有多少个完全通量那么我们首先要知道有多少个子图。那么我们可以用并查集来统计有多少个子图。 (2) 我们将并查集中统领子图中的所有节点的节点所连接的边和所拥有的点的数量统计出来。 (3) 遍历所有子图已知点的数量n已知边的数量m如果m 等于(n * n-1) / 2那么完全通量1即可。 打鸡血 心若在梦就在只不过是从头再来。哪怕每次周赛一题都做不出来都得努力去研究因为未来的某一天一定能够进步的。
http://www.w-s-a.com/news/854013/

相关文章:

  • 建设银行积分网站观光农业规划设计
  • jsp项目个人网站开发用织梦做网站有什么公司会要
  • 和田网站制作无限动力网站
  • 长沙口碑好网站建设企业网站 需求
  • 哪个网站建设公司wordpress陌陌主题
  • 湖滨区建设局网站北京国际建设集团网站
  • 做服装团购有哪些网站wordpress 端口修改
  • 上海礼品定制网站响应式网站模版建站
  • 那种自行提取卡密的网站怎么做网站攻击
  • 洛阳免费网站建设qq是哪家公司开发的软件
  • 怎么做网站网页wordpress网址导航
  • 专业微信网站建设公司首选公司wordpress自动分类插件
  • 网站设计登录界面怎么做网站突然排名没了
  • wordpress 人物页面seo优化公司信
  • 高端网站建设报价网站建设需要硬件设备
  • 做国际物流在哪些网站找客户营销qq怎么申请
  • 网站做推广百度好还是360好科技厅
  • 网站开发工具排名万户网络建一个网站虽要多少钱
  • 用凡科做的网站要钱吗WordPress城市切换
  • 制作一个门户网站需要多少钱营销型网站特征
  • 手机网站 多html中国建设银行网站包头分行
  • 哪个网站做免费广告好招牌图片效果图设计制作
  • 网站建设优化服务机构苏州市做网站
  • 网站如何优化流程企业网站管理系统视频教程
  • 我想克隆个网站 怎么做贵州住房和城乡建设厅官网
  • 网站建设项目前景上海今天新闻综合频道
  • 做网站推销的如何谈客户wordpress怎么做商城
  • 摄影素材库网站服装页面设计的网站
  • 如何用国外网站做头条做个游戏app的费用大概多少
  • 网站 形象入口页福州网站建设网络公司排名