首页 > 其他分享 >跳跃游戏IV

跳跃游戏IV

时间:2023-05-10 22:44:06浏览次数:35  
标签:游戏 int IV vector 跳跃 dp size

从0位置跳到末位置,每次可以往左跳、往右跳一格,或跳到有与该位置相同数值的地方,求最小跳跃次数

1. 广度优先搜索+哈希预处理+动态规划

class Solution {
public:
    vector<int> dp;//dp[i]表示到达i位置最小操作数
    int minJumps(vector<int>& arr) {
        int n =arr.size();
        map<int,vector<int>> m;
        for(int i=0;i<n;i++)
            m[arr[i]].push_back(i);//存储对应值的坐标

        dp.resize(n,INT_MAX);
        queue<int> q;
        q.push(0);
        int depth = 0;
        while(!q.empty()){
            if(dp[n-1]!=INT_MAX) return dp[n-1];//剪枝
            int k = q.size();
            for(int i=0;i<k;i++){
                int cur = q.front();
                q.pop();
                if(cur<0||cur>=n) continue;//跳过越界
                if(dp[cur]<=depth) continue;//跳过重复
                dp[cur] = depth;
                //接下来把能加入的坐标加入
                q.push(cur+1);
                q.push(cur-1);
                if(!m.count(arr[cur])) continue;//没有相同值,表示已经被扫描过了
                for(int j=0;j<m[arr[cur]].size();j++)
                    q.push(m[arr[cur]][j]);
                 m.erase(arr[cur]);
            }
            depth++;//下一层操作数加一
        }
        return dp[n-1];
    }
};

标签:游戏,int,IV,vector,跳跃,dp,size
From: https://www.cnblogs.com/929code/p/17389574.html

相关文章

  • 【大数据】Hive 小文件治理和 HDFS 数据平衡讲解
    目录一、Hive小文件概述二、Hive小文件产生的背景三、环境准备四、Hive小文件治理1)小文件合并(常用)1、示例演示一(非分区表)2、示例演示二(分区表)3、示例演示三(临时表)2)文件压缩3)存储格式优化4)分区表5)垃圾回收五、HDFS数据平衡1)HDFS数据倾斜2)HDFS数据平衡一、Hive小文件概述......
  • 消息推送平台的实时数仓?!flink消费kafka消息入到hive
    大家好,3y啊。好些天没更新了,并没有偷懒,只不过一直在安装环境,差点都想放弃了。上一次比较大的更新是做了austin的预览地址,把企业微信的应用和机器人消息各种的消息类型和功能给完善了。上一篇文章也提到了,austin常规的功能已经更新得差不多了,剩下的就是各种细节的完善。不知道大......
  • R语言K-Means(K-均值)聚类、朴素贝叶斯(Naive Bayes)模型分类可视化
    全文链接:http://tecdat.cn/?p=32355原文出处:拓端数据部落公众号分类是把某个对象划分到某个具体的已经定义的类别当中,而聚类是把一些对象按照具体特征组织到若干个类别里。虽然都是把某个对象划分到某个类别中,但是分类的类别是已经预定义的,而聚类操作时,某个对象所属的类别却不是......
  • P1676 [USACO05FEB] Aggressive cows G 题解
    题目传送门解题思路最大值最小化问题,考虑二分答案。首先要排序,保证序列单调不降,然后求出两个隔间之间的距离。sort(a+1,a+1+n);for(rii=1;i<=n;i++) dis[i]=a[i+1]-a[i];二分出一个\(mid\),判断它是否合法:每次累加距离,如果距离和比\(mid\)大,说明当前可以分配牛,记录数量......
  • Codeforces Round 683 (Div. 1, by Meet IT) ABCDF题解
    F和D都在ABC上做过类似的,但是没打好,道心破碎。。。。A.Knapsack若物品质量在[(w+1)/2,w]之间做完了否则一直贪心加voidsolve(){intn;llw;cin>>n>>w;intc=n;for(inti=1;i<=n;i++){cin>>a[i];if(a[i]>w)c--;}if(!c){......
  • app逆向之安卓native层安全逆向分析(七):unidbg自尝试某潮流app+dvmObject[]处理
    前言跟着龙哥搞了几次unidbg了,这次也自己尝试用来分析下某潮流app了。分析1.抓包先抓个包 我们要搞的就是这个sign-v1了。  2.调试找参数jadx一顿分析,一搜: 搜出来还不少,往下翻,找找一些特征,很快找到这里 点进去    ok,用objectionhook之后,发现不是......
  • 多个div放在一起,边框重叠去重
    多个div放在一起,边框如何去重先看一下效果 在看一下改进后的效果 是不是舒服多了。上代码<ulclass="firstul"><li>cell</li><li>cell</li><li>cell</li><li>cell</li><li>cell</l......
  • Stable Diffusion 反向提示词 Negative prompts
    反向提示词(Negativeprompts)用于描述图片中不希望出现的内容。常用于阻止生成特定的事物、样式或修复某些图像异常。下面是一些例子从“宁静的精灵森林”中移除“苔藓”宁静的精灵森林peacefulelvenforest,thickforest,largelivingtreesarevisibleinthebackgro......
  • 一款基于java开发的智能化系统(es+neo4j+activiti)
    一、项目介绍一款全源码,可二开,可基于云部署、私有部署的企业级知识库云平台,一款让企业知识变为实打实的数字财富的系统,应用在需要进行文档整理、分类、归集、检索、分析的场景。获取方式+q:262086839为什么建立知识库平台?助力企业知识资产有效沉淀和利用,避免随文档负责人变动......
  • 第四届CocoaChina游戏开发者大会 可谓群英荟萃
    2012年3月31日,第四届CocoaChina游戏开发者大会暨Cocos2D-X技术研讨会在北京剧场举行。CocoaChina成立于2008年,是整个华语地区第一个也是最大的苹果产品的中文开发社区网站。此前,由CocoaChina举办的开发者大会已成功举办过三届,且每届规模都在扩大,行业影响力与日俱增。从2009年起,每......