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);
        }
  • 相关阅读:
    Zero Downtime Upgrade of Oracle 10g to Oracle 11g Using GoldenGate — 1
    架构-MVVM:MVVM核心概念
    架构-MVVC:百科
    架构:目录
    架构:template
    JavaScript-Tool:Ext JS
    JavaScript-Tool:jquery.tree.js-un
    JavaScript-Tool:wdtree
    C#:C# 运算符
    C#:目录
  • 原文地址:https://www.cnblogs.com/bytecodebuffer/p/11598080.html
Copyright © 2011-2022 走看看