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

晋江网站建设公司互联网营销师怎么报名

晋江网站建设公司,互联网营销师怎么报名,wordpress 网站统计,网站建设与单位干部作风的关系LeetCode 1345 跳跃游戏 IV 问题解析 问题概述 LeetCode 1345 是一个关于数组跳跃的图论问题,要求从数组第一个元素跳到最后一个元素,每次跳跃可以: 向左或向右跳任意步跳到与当前元素值相同的任意位置 目标是求最少跳跃次数。 解题思路 …

LeetCode 1345 跳跃游戏 IV 问题解析

问题概述

LeetCode 1345 是一个关于数组跳跃的图论问题,要求从数组第一个元素跳到最后一个元素,每次跳跃可以:

  • 向左或向右跳任意步
  • 跳到与当前元素值相同的任意位置
    目标是求最少跳跃次数。

解题思路

这道题适合用广度优先搜索 (BFS) 解决,核心思路如下:
首先用哈希表记录每个值对应的所有位置
从起点开始 BFS,记录已访问位置避免重复
每次跳跃时,有三种选择:

  • 跳到相同值的所有位置
  • 跳到左边相邻位置
  • 跳到右边相邻位置
    找到终点时返回跳跃次数下面是基于上述思路的C++代码实现:
#include <vector>
#include <queue>
#include <unordered_map>
using namespace std;int minJumps(vector<int>& arr) {int n = arr.size();if (n <= 1) return 0;// 预处理相同值的下标集合unordered_map<int, vector<int>> idxSameValue;for (int i = 0; i < n; i++) {idxSameValue[arr[i]].push_back(i);}vector<bool> visited(n, false);queue<int> q;q.push(0);visited[0] = true;int steps = 0;while (!q.empty()) {int size = q.size();// 处理当前层的所有节点for (int i = 0; i < size; i++) {int current = q.front();q.pop();// 到达终点if (current == n - 1) return steps;// 处理相邻节点if (current - 1 >= 0 && !visited[current - 1]) {visited[current - 1] = true;q.push(current - 1);}if (current + 1 < n && !visited[current + 1]) {visited[current + 1] = true;q.push(current + 1);}// 处理相同值的节点int value = arr[current];auto it = idxSameValue.find(value);if (it != idxSameValue.end()) {for (int idx : it->second) {if (!visited[idx]) {visited[idx] = true;q.push(idx);}}// 关键优化:处理完后删除该值的映射idxSameValue.erase(it);}}steps++;}return -1; // 题目保证有解,理论上不会执行到这里
}

代码解释:

  1. 预处理阶段

    • 使用unordered_map<int, vector<int>>存储每个值对应的所有下标
  2. BFS初始化

    • 初始化访问标记数组visited
    • 队列q初始加入起点0
    • 步数计数器steps初始化为0
  3. BFS主循环

    • 按层遍历队列中的节点
    • 处理当前节点的相邻节点(前一个和后一个位置)
    • 处理当前节点值对应的所有下标:
      • 将未访问的下标加入队列并标记为已访问
      • 处理完后从哈希表中删除该值的映射,避免重复处理
  4. 终止条件

    • 当到达终点时直接返回当前步数

复杂度分析:

  • 时间复杂度:O(n)
  • 空间复杂度:O(n)

这个实现通过哈希表快速定位相同值的元素,并在首次访问后立即移除该值的映射,确保每个值的子图只被处理一次,从而高效解决问题。

http://www.dtcms.com/wzjs/481484.html

相关文章:

  • wordpress图片上传不显示seo网页优化平台
  • 巴拉巴拉童装在哪几个网站做直销拉新项目官方一手平台
  • 承接网站建设 优帮云阿里巴巴官网首页
  • 电商网站业务流程网站营销方案模板
  • 怎么做招聘网站seo整站优化一年价格多少
  • 网站搭建平台demo免费女教师遭网课入侵直播录屏曝光视频
  • 网络托管公司济南seo优化公司
  • 做淘客网站的公司产品推广方式都有哪些
  • 网站系统关键字竞价托管 微竞价
  • 怀化网站制作建设百度软件市场
  • wordpress是是是seopeixun com cn
  • 做淘宝网站的上海优化seo排名
  • 浙江网站建设哪里有友情链接英文翻译
  • wordpress 数据库导入数据库文件站长工具seo查询5g5g
  • 用php做的旅游网站企业培训
  • 为何建设银行的网站登不上去爱站网站
  • 网站浮动窗口怎么做抄一则新闻四年级
  • 网站建设专家联系方式做高端网站公司
  • 网站建设时间进度表南宁seo平台标准
  • 有什么可以做试卷题目的网站小红书笔记关键词排名优化
  • 网站广告弹出来代码网络推广软文
  • 档案安全网站安全建设网店如何做推广
  • 石家庄网站制作找谁今日热榜官网
  • 如何外贸seo网站建设专业网站建设公司
  • 投资网站建设软件制作平台
  • 怎么把自己做的网站放到百度上今日的重大新闻
  • 用万网做网站网络营销与管理
  • 河南郑州暴雨百度seo快速见效方法
  • 微信小程序制作网站搜索排名优化
  • cms网站制作怎么免费注册域名