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;
        }
    
    
  • 相关阅读:
    c#截取后几位
    GridView里嵌套RadioButton单选
    sql存储过程无重复添加修改
    Javascript指令
    多级联动Dropdownlist(刷新版)
    docker部署redis问题解决
    docker 安装 gitlab
    docker安装jenkins
    部分ansible常用模块
    ansible
  • 原文地址:https://www.cnblogs.com/bears9/p/13763568.html
Copyright © 2011-2022 走看看