当前位置: 首页 > news >正文

JAVA练习52-打家劫舍

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、题目-打家劫舍

1.题目描述

2.思路与代码

2.1 思路

2.2 代码

总结


前言

提示:这里可以添加本文要记录的大概内容:

2月16日练习内容


提示:以下是本篇文章正文内容,下面案例可供参考

一、题目-打家劫舍

1.题目描述

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。

给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。

示例 1:

输入:[1,2,3,1]
输出:4
解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。
     偷窃到的最高金额 = 1 + 3 = 4 。


示例 2:

输入:[2,7,9,3,1]
输出:12
解释:偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。
     偷窃到的最高金额 = 2 + 9 + 1 = 12 。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/house-robber
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2.思路与代码

2.1 思路

1.定义两个变量,res0表示第i+1家没有被偷可以获得的最大金额,res1表示第i+1家被偷了可以获得的最大金额

2.通过递归公式:Math.max(res0,res1)表示如果第i+1家没偷,那么第i家有没有偷都是可以的,我们取最大值即可;nums[i] + res0表示的是如果第i+1家偷了,那么第i家必须没偷,这里nums[i]表示的是第i+1家偷的金额。

3。递归遍历,得出res0与res1的结果

4.输出res0与res1中的最大值

2.2 代码

代码如下(示例):

class Solution {public int rob(int[] nums) {//数组长度int length = nums.length;//偷的钱int res0 = 0;       //第一家没偷int res1 = nums[0]; //第一家偷了for(int i = 1;i < length;i ++){//临时来选择当前价偷不偷//如果第一家偷了,那下一家不能偷//如果第一家没偷,那下一家可偷或者不偷int temp = Math.max(res0,res1);//下一家偷获得的金额res1 = res0 + nums[i];res0 = temp;}return Math.max(res0,res1);}
}


总结

提示:这里对文章进行总结:
 

http://www.lryc.cn/news/8868.html

相关文章:

  • 简单谈一谈幂等测试
  • typescript复习笔记
  • webstorm开发electron,调试主进程方案
  • 2W字正则表达式基础知识总结,这一篇就够了!!(含前端常用案例,建议收藏)
  • 自学web前端觉得好难,可能你遇到了这些困境
  • ASEMI中低压MOS管18N20参数,18N20封装,18N20尺寸
  • [NetBackup]客户端安装后server无法连通client
  • 黑马Java后端项目实战--在线聊天交友
  • 【实战系列 2】Yapi接口管理平台Getshell-Linux后门权限维持与痕迹清除
  • 设计模式之抽象工厂模式(C++)
  • Kotlin新手教程一(Kotlin简介及环境搭建)
  • 【虚拟仿真】Unity3D打包WEBGL实现全屏切换
  • java对象内存结构分析与大小计算
  • RabbitMQ学习(七):交换器
  • cmd命令大全
  • Git的使用方法(保姆级)
  • TypeScript 学习之泛型
  • 新手学习node.js基础,node.js安装过程,node.js运行环境及javascript运行环境.
  • Maven的安装步骤(保姆级安装教程)
  • Axure教程(一)——线框图与高保真原型图制作
  • wholeaked:一款能够追责数据泄露的文件共享工具
  • 动态规划——股票问题全解
  • 想做游戏开发要深入c/c++还是c#?
  • 【JMeter】【Mac】如何在Mac上打开JMeter
  • JAVA面试八股文一(并发与线程)
  • C语言二级指针
  • [java-面试]初级、中级、高级具备的技术栈和知识点
  • 「5」线性代数(期末复习)
  • 记一次20撸240的沙雕威胁情报提交(2019年老文)
  • 佳能镜头EOS系统EF协议逆向工程(三)解码算法