公众号做电影网站赚钱二维码小程序制作

bicheng/2025/10/14 2:43:50/文章来源:
公众号做电影网站赚钱,二维码小程序制作,做餐饮网站建设,wordpress极验2422.使用合并操作将数组转换为回文序列 题目链接#xff1a;merge-operations-to-turn-array-into-a-palindrome 解法#xff1a; 用双指针来解决。整体思路是#xff1a;从数组的左右两边开始看#xff0c; 如果 nums[left] nums[right]#xff0c;两边数字一样merge-operations-to-turn-array-into-a-palindrome 解法 用双指针来解决。整体思路是从数组的左右两边开始看 如果 nums[left] nums[right]两边数字一样left, right--继续比较中间的元素如果 nums[left] ! nums[right]两边数字不一样此时需要合并谁较小就让谁与其邻居元素合并并移动指针。同时要记录merge了一次。当 left 指针与 right 指针相遇的时候返回一共合并了几次。 这个题还有一个很重要的细节那就是在不断合并的过程中合并的元素可能会超出int类型的范围。int类型是4字节32位10进制最多表示10位。题目给出的array中元素范围是10进制的6位但不断合并的过程中可能超出。所以得单独定义用于合并的leftSum和rightSum类型为long。 参考题解双指针 边界条件 时间复杂度O(n) 空间复杂度O(1) class Solution { public:int minimumOperations(vectorint nums) {int n nums.size();int i 0, j n - 1;// 注意这里是long类型int类型是不行的因为后面merge的时候test case会超出32位8字节的限制// 也因为如此所以这俩值需要显式地提取出来通过 nums[left1] nums[left] 这种方式来更新是不行的long leftSum nums[0], rightSum nums[j];int res 0;while (i j) {if (leftSum rightSum) {j--;rightSum nums[j];res;} else if (leftSum rightSum) {i;leftSum nums[i];res;} else {i, j--;leftSum nums[i], rightSum nums[j];}}return res;} }; 200.岛屿的个数 题目链接number-of-islands 解法 每块岛屿可以看成相连的一个个节点只需把所有相连节点遍历殆尽并标上特殊值以记录该节点已访问过则遍历殆尽时证明一块岛屿已找到。 总体思想是从1个小岛开始通过遍历所有垂直和水平方向的节点把相邻的小岛连接起来变成一整块岛屿同时标上特殊值用来记录该节点已经访问过了。遍历完毕时一整块岛屿就找到了。再从另一个小岛开始继续遍历。 DFS找到为1的点然后访问下、上、左、右4个方位垂直和水平。如果遇到1就置为0表示访问过了再继续访问下上左右如果遇到0那么就是遇到水了该递归方向返回。如果点的所有递归都返回了那岛屿数量加1。然后再找下一个为1的点进行DFS。 BFS找到为1的点加入队列。弹出后访问下、上、左、右4个方位垂直和水平。如果遇到1就加入队列。先进先出。 参考题解LeetCode 200岛屿数量 Number of Islands - 知乎 边界条件无 时间复杂度O(M×N)其中 M 和 N 分别为行数和列数。 空间复杂度DFS的O(M×N)BFD的O(min(M,N) )在最坏的情况下全部为陆地队列的大小可以达到 min(MN)。 // DFS class Solution { public:int numIslands(vectorvectorchar grid) {if (grid.empty() || grid[0].empty()) return 0;int ROW grid.size();int COL grid[0].size();int res 0;for (int i0; iROW; i) {for (int j0; jCOL; j) {if (grid[i][j] 1) {dfs(grid, i, j, ROW, COL);res;}}}return res;}void dfs(vectorvectorchar grid, int i, int j, int ROW, int COL) {// 递归终止条件if (i 0 || j 0 || i ROW || j COL) return;if (grid[i][j] 0) return;grid[i][j] 0; // 置为0避免再次被搜索// 依次为下上左右这4个方向dfs(grid, i-1, j, ROW, COL);dfs(grid, i1, j, ROW, COL);dfs(grid, i, j-1, ROW, COL);dfs(grid, i, j1, ROW, COL);} }; // BFS class Solution { public:int numIslands(vectorvectorchar grid) {if (grid.empty() || grid[0].empty()) return 0;int ROW grid.size();int COL grid[0].size();int res 0;for (int i0; iROW; i) {for (int j0; jCOL; j) {if (grid[i][j] 1) {bfs(grid, i, j, ROW, COL);res;}}}return res;}void bfs(vectorvectorchar grid, int i, int j, int ROW, int COL) {queueint deque;// 把二维表格展开为一维时的索引deque.push(i*COL j);while (!deque.empty()) {int idx deque.front();deque.pop();int i idx / COL, j idx % COL;// 别忘了不能越界要加 (i-1) 0 这个条件if ((i-1) 0 grid[i-1][j] 1) {grid[i-1][j] 0;deque.push((i-1)*COL j);}if ((i1) ROW grid[i1][j] 1) {grid[i1][j] 0;deque.push((i1)*COL j);}if ((j-1) 0 grid[i][j-1] 1) {grid[i][j-1] 0;deque.push(i*COL j-1);}if ((j1) COL grid[i][j1] 1) {grid[i][j1] 0;deque.push(i*COL j1);}}} }; 694.不同岛屿的个数 题目链接number-of-distinct-islands 解法 这个题的整体思路和【200.岛屿的个数】差不多只是加了一个记录整块岛屿的形状。 整块岛屿的形状就是每个小岛的形状的列表。而形状定义为相对于左上角第1个小岛的位置的偏移量这样左上角第一个小岛的位置是(0, 0)下方的小岛则是(-1, 0)。这样通过DFS或者BFS可以得到这块岛屿上所有小岛的形状从而得到整块岛屿的形状列表。 如果两块岛屿相对各自左上角的小岛的位置偏移量的列表相同那么这两块岛屿形状相同。 要求不同的岛屿那么就要把形状列表加入set中进行去重。 最后求set的长度即可。 BFS实现的步骤繁琐一些。 参考题解https://blog.csdn.net/danspace1/article/details/86610850 边界条件无 时间复杂度O(mn) 空间复杂度O(mn) // DFS class Solution { public:int numDistinctIslands(vectorvectorint grid) {if (grid.empty() || grid[0].empty()) return 0;int ROW grid.size();int COL grid[0].size();int res 0;// 左上角第1个小岛的位置为(0,0)先记录左上角再记录其他小岛的位置setvectorpairint,int shapes;for (int i0; iROW; i) {for (int j0; jCOL; j) {if (grid[i][j] 1) {vectorpairint,int posVec;// 左上角第1个小岛的位置为(0,0)pairint,int pos(0, 0);dfs(grid, i, j, posVec, pos);shapes.insert(posVec);res;}}}return shapes.size();}void dfs(vectorvectorint grid, int i, int j, vectorpairint,int posVec, pairint,int pos) {// 递归终止条件int ROW grid.size(), COL grid[0].size();if (i 0 || j 0 || i ROW || j COL) return;if (grid[i][j] 0) return;grid[i][j] 0; // 置为0避免再次被搜索posVec.push_back(pos);// 依次为下上左右这4个方向vectorpairint,int directions {{-1,0},{1,0},{0,-1},{0,1}};for (const auto d: directions) {// 计算相对左上角小岛的位置pairint,int newPos {pos.firstd.first, pos.secondd.second};dfs(grid, id.first, jd.second, posVec, newPos);}} }; // BFS class Solution { public:int numDistinctIslands(vectorvectorint grid) {if (grid.empty() || grid[0].empty()) return 0;int ROW grid.size(),COL grid[0].size(), res 0;setvectorpairint, int shapes;for (int i0; iROW; i) {for (int j0; jCOL; j) {if (grid[i][j] 1) {vectorpairint,int posVec;pairint,int idx(i, j), pos(0, 0);bfs(grid, idx, posVec, pos);shapes.insert(posVec);res;}}}return shapes.size();}void bfs(vectorvectorint grid, pairint,int idx, vectorpairint,int posVec, pairint,int pos) {int ROW grid.size(), COL grid[0].size();// 需要两个队列一个装位置索引一个装形状queuepairint, int deque, posQue;// 同时记录位置和形状deque.push(idx), posQue.push(pos);// 同时加入到整个岛屿的形状列表中posVec.push_back(pos);while (!deque.empty()) {pairint,int curIdx deque.front();deque.pop();pairint,int curPos posQue.front();posQue.pop();vectorpairint,int directions {{-1,0},{1,0},{0,-1},{0,1}};for (const auto d: directions) {int row curIdx.first d.first;int col curIdx.second d.second;if (row0 || col0 || rowROW || colCOL) continue;if (grid[row][col] 0) continue;grid[row][col] 0;pairint,int newIdx, newPos;newIdx {row, col};newPos {curPos.firstd.first, curPos.secondd.second};deque.push(newIdx), posQue.push(newPos);posVec.push_back(newPos);}}} };

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/90448.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wordpress免登录发文章完整的网站优化放啊

介绍: 边缘检测是计算机视觉中非常重要的技术之一。它用于有效地识别图像中的边缘和轮廓,对于图像分析和目标检测任务至关重要。OpenCV提供了多种边缘检测技术的实现,本博客将介绍其中的两种常用方法:Canny边缘检测和Sobel边缘检测。 理论介…

拼多多网站建设框架图佛山网站制作做多少钱

在ThinkPHP 5中实现带有搜索条件、名称、时间和手机号的3个联表查询(UNION ALL),您可以按照以下步骤进行操作: 确保已经配置好数据库连接信息和相关的模型。 使用union()方法来构建3个联表查询,同时在每个查询中添加所…

建设设计网站沈阳网站制作聚艺科技

需要一个简单的测试环境,于是准备用docker启动一个1fe 1be的简单玩一下 如果be容器启动后再去修改 /etc/sysctl.conf sysctl -w vm.max_map_count2000000 这个参数是没用的,be仍然会启动失败 这时可以打开cmd wsl --list C:\Users\pc>wsl --list …

利用网上菜谱做网站打开wordpress

文章目录 前言MQ如何保证消息不丢失RabbitMQRocketMQKafkaMQ MQ如何保证顺序消息RabbitMQRocketMQKafka MQ刷盘机制/集群同步RabbitMQRocketMQKafka 广播消息&集群消息RabbitMQRocketMQ MQ集群架构RabbitMQRocketMQKafka 消息重试RabbitMQRockeMqKafka 死信队列RocketMQKaf…

西安做网站的公司电话个人怎么制作公众号

本文章总结了关于phpMyAdmin登陆超时1440秒未活动请重新登录解决方法,有需要的朋友可参考本文章。问题现象:现象一:phpmyadmin在使用过程中经常出现“登陆超时(1440秒未活动),请重新登录”;现象二:phpmyadm…

做网站用地图网站空间购买哪家好

目录 一、下载安装包1.1 官网下载1.2 linux命令下载 二、安装2.1 安装依赖包2.2 安装nginx 三、启动四、访问五、关停六、重载配置 一、下载安装包 1.1 官网下载 1.官网地址 https://nginx.org/en/download.html2.版本说明 1.Mainline version-主线版本 2.Stable version-稳…

网站建设流程周期北京四大设计院

1、简介 1.1、概述 在软件开发中,常常会遇到这种情况,实现某一个功能有多条途径。每一条途径对应一种算法,此时可以使用一种设计模式来实现灵活地选择解决途径,也能够方便地增加新的解决途径。为了适应算法灵活性而产生的设计模…

网站是先解析还是先备案优才网站建设

持续集成部署-k8s-配置与存储-配置管理:配置文件不可变 1. 配置文件不可变场景2. 配置 ConfigMap 为不可修改 1. 配置文件不可变场景 上一篇我们说到,对于 ConfigMap 的热更新操作,我们在创建了ConfigMap 之后,由于某种原因&…

哈尔滨营销型网站建设wordpress我爱水煮鱼

11.13 信号完整性 指针地址 的加减,注意 最后转为16进制

网站建设和网络推广怎样下载模板网站

822. 翻转卡片游戏 中等 68 相关企业 在桌子上有 n 张卡片,每张卡片的正面和背面都写着一个正数(正面与背面上的数有可能不一样)。 我们可以先翻转任意张卡片,然后选择其中一张卡片。 如果选中的那张卡片背面的数字 x 与任意…

小语种网站制作爬虫到WordPress

第1关 找零钱 任务描述 本关任务:设计一个贪婪算法,使得找的钱币张数最少。 商店售货员找给 1 个顾客 n 元,用以下七种面值的纸币:100 元,50 元,20 元,10 元,5 元,2 …

宁波网站建设首选品牌做折扣的网站

全世界只有3.14 % 的人关注了爆炸吧知识一沙见世界 一花窥天堂手心握无限 须臾纳永恒杨振宁曾说读上面的四句诗可以感受到物理的美但物理的美不止于此物理还有一种庄严美一种神秘美一种初窥宇宙奥秘的畏惧美物理就是如此的迷人任何语言在它的面前都很贫瘠数学让人摆脱了愚昧而…

单页导航网站动漫制作技术专业入门

2020CCPC威海 2020CCPC威海榜单 题号题目知识点难度AGolden Spirit思维,推导题签到题BLabyrinthdfs思维金牌题CRencontreDABC Conjecture数论,推导签到题ESo Many Possibilities…FSkeleton DynamizationGCaesar Cipher线段树hash银牌题HMessage Bomb贪…

上海建设工程标准与造价信息网站o2o网站建设流程

写在前面: 首先感谢兄弟们的订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 路虽远,行则将至;事虽难,做则必成。只要有愚公移山的志气、滴水穿石的毅力,脚踏实地,埋头苦干,积跬步以至千里,就…

济宁网站建设公司电话网站开发接口文档

一、安装包获取方式 方式一 1、直接把下载好的安装包上传到服务器中 方式二 2、通过wget安装Nexus压缩包 ①、可以使用以下命令进行安装Nexus的最新版本 wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz②、也可以点击官网复制想要下载的Nexus压缩包进行安装…

网站开发使用的语言类福建建设银行招聘网站

一级缓存 为了获得更好的性能,NHibernate智能地缓存数据。NHibernate有不同的缓存机制起作用,最重要的就是一级缓存。每个session对象维持一个一级缓存,session对象创建时缓存创建,session对象释放时缓存销毁。 缓存只不过是一个哈…

网站技术开发设计网站如果直接点击拨打电话

一、Java文件内容查找的基本原理 在Java中,文件内容查找可以通过读取文件并逐行检查每一行内容来实现。基本的流程包括以下几个步骤: 打开文件:使用Java的文件操作类(如FileInputStream)打开要查找的文件。 逐行读取…

做一个电影网站需要多少钱高端网站哪种好

基于51单片机的LCD1602电子钟闹钟proteus仿真设计 基于51单片机的LCD1602电子钟闹钟proteus仿真设计功能介绍:仿真图:原理图:设计报告:程序:器件清单:资料清单&&下载链接: 基于51单片机…

建筑人才网招收土建预算员实学生重庆排名优化整站优化

在学习harmonyOS时,原本是好好运行的。但是突然报错 ToDoListItem({ item }) does not meet UI component syntax. 一脸懵逼,以为是自己语法问题检查了半天也没问题。 网上搜索了一下,说把多余的js\map文件删除就行 才发现我的 鸿蒙的开…

html5做网站的代码wordpress 4.9升级

在Web3技术迅速发展的时代,寻找一个综合且深入的Web3开发工具和学习项目资源平台变得至关重要。今天,我将向大家介绍一个非常有价值的网站,它就是https://web3x.world 。 Web3X是一个全面而深入的Web3开发者社区,为开发者们提供了…