首页 > 其他 > 详细

00.求得到最大的价值

时间:2019-09-27 15:57:21      阅读:85      评论:0      收藏:0      [点我收藏+]

一条街上有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);
    }

 

00.求得到最大的价值

原文:https://www.cnblogs.com/baizhuang/p/11598080.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!