zoukankan      html  css  js  c++  java
  • 198. 打家劫舍

     直接看代码吧

    class Solution {
        public int rob(int[] nums) {
            if(nums.length==0) return 0;
            if(nums.length==1) return nums[0];
            if(nums.length==2) 
            {
                if(nums[0]>nums[1])return nums[0];
                else
                {
                    return nums[1];
                }   
            }
            int[] s=new int[nums.length];//s[i]代表从0到下标i这么多的数,所能偷的最高金额
            s[0]=nums[0];//假如只有一个数,显然最大金额为nums[0]
            s[1]=nums[0]>nums[1]?nums[0]:nums[1];//因为不能偷相邻两个元素,所以假如有俩元素,选其中大的那个
            for(int i=2;i<nums.length;i++)
            {
                s[i]=Math.max(s[i-1],s[i-2]+nums[i]);//以s[2]为例,显然s[2]指的是下标为0,1,2,这三个数的最大金额,要么选nums[1],要么同时选nums[0],nums[2]
            }
            return s[nums.length-1];
    }
    }
    

      

  • 相关阅读:
    LeetCode 79
    LeetCode 437
    LeetCode 783
    LeetCode 59
    LeetCode 每日一题 04/24
    LeetCode 5
    LeetCode 43
    简易多线程任务 往数据库插数据
    定时任务--查数据库--注解实现
    redis 简易 实现
  • 原文地址:https://www.cnblogs.com/lzh1043060917/p/12954729.html
Copyright © 2011-2022 走看看