zoukankan      html  css  js  c++  java
  • 力扣 403 青蛙过河 搜索 || 动态规划

    题目链接

    代码参考自

        public static boolean flag = false;
    
        // 用来判断当前走过来距离是否有这样一个数
        public int judge(int []stones, int value) {
            int left = 0, right = stones.length - 1, mid = 0;
    
            while (left <= right) {
                mid = (left + right) >> 1;
    
                if (stones[mid] > value) {
                    right = mid - 1;
                } else if (stones[mid] < value) {
                    left = mid + 1;
                } else {
                    return mid;
                }
            }
    
            return -1;
        }
    
        // 当前下标,走过来的k值,数组
        public void dfs(int index, int k, HashMap<Integer, HashSet<Integer>> mp, int []stones) {
            if (index >= stones.length - 1 || flag) {
                flag = true;
                return;
            }
    
            // 减枝操作,如果之前有通过k值走过来,那么没有必要接着往下走了
            // 并且stones[index] + k 在数组有这个值
            int temp = judge(stones, k + stones[index]);
            if (!mp.get(index).contains(k) && temp > -1) {
                mp.get(index).add(k);
    
                dfs(temp, k - 1, mp, stones);
                dfs(temp, k, mp, stones);
                dfs(temp, k + 1, mp, stones);
            }
        }
        public boolean canCross(int[] stones) {
            if (stones == null || stones.length < 2) {
                return false;
            }
    
            flag = false;
    
            HashMap<Integer, HashSet<Integer>> mp = new HashMap<>();
            for (int i = 0; i < stones.length; i++) {
                mp.put(i, new HashSet<>());
            }
    
            dfs(0, 1, mp, stones);
    
            return flag;
        }
    
    
  • 相关阅读:
    codefroces 946F Fibonacci String Subsequences
    [HNOI2010]MATRIX 矩阵
    [HNOI2010]STONE取石头游戏
    [HNOI2010]PLANAR
    [HNOI2010]BUS 公交线路
    [HNOI2010]CHORUS 合唱队
    [HNOI2011]赛车游戏
    [HNOI2011]数矩形
    [HNOI2012]与非
    [BZOJ4200][NOI2015]小园丁与老司机
  • 原文地址:https://www.cnblogs.com/bears9/p/13763568.html
Copyright © 2011-2022 走看看