zoukankan      html  css  js  c++  java
  • 00.求得到最大的价值

    一条街上有N个房子,每个房子里有一些值钱的东西。一个小偷计划去这条街上偷盗,但是考虑到不被迅速抓到,小偷不能偷连续的两个房子。请编码一个function,计算出小偷能偷盗的最大物品价值。

    输入为一个N的数组,数组的每一位数字代表了一个房子里东西的价值。

    values[]=[9, 3, 5, 8, 2, 4, 7]

    返回 24 (偷第一个,第四个,第七个房子得到的价值)

     public static int getResult(int index,int[] data){
            if(index>=data.length) return 0;
            int maxValue = data[index];
            int i = index+2;
            //向前走一步,如果可以走则加到value
            int maxValue2 = 0;
            if(i<data.length){
                maxValue +=getResult(i,data);
            }
            //平行走一步
            if(index+1<data.length){
                maxValue2+=getResult(index+1,data);
            }
            maxValue = maxValue>maxValue2?maxValue:maxValue2;
            return maxValue;
        }
    
    
    
        public static void main(String []args){
            int[] data = new int[]{9,8,0,9,8};
            int result = getResult(0,data);
            System.out.println(result);
        }
      public static int doIt(int n, int[] values, int left) {
            if (n == 0) return 0;
            if (n == 1) return values[left];
            if (n == 2) return Math.max(values[left], values[left + 1]);
            int yes = values[left] + doIt((n - 2), values, left + 2);
            int no = doIt((n - 1), values, left + 1);
            return Math.max(yes, no);
        }
  • 相关阅读:
    mojoportal中弹出窗口
    css 层居中
    mojoportal中添加自定义javascript
    C#执行cmd [转载]
    异步委托 学习笔记
    Windows Sysinternals
    有关int,Int32的疑惑解答
    WEB Debug tools汇总
    规范很重要
    [笔记]VGA 接口电阻网络阻抗
  • 原文地址:https://www.cnblogs.com/baizhuang/p/11598080.html
Copyright © 2011-2022 走看看