当前位置:网站首页>198. House raiding
198. House raiding
2022-07-04 06:01:00 【mrbone9】
Address :
Power button
https://leetcode-cn.com/problems/house-robber/ subject :
You are a professional thief , Plan to steal houses along the street . There is a certain amount of cash in every room , The only restriction on your theft is that adjacent houses are equipped with interconnected anti-theft systems , If two adjacent houses are broken into by thieves on the same night , The system will automatically alarm .
Given an array of non negative integers representing the storage amount of each house , Count you Without triggering the alarm , The maximum amount that can be stolen overnight .
Example 1:
| Input :[1,2,3,1] Output :4 explain : Steal 1 House No ( amount of money = 1) , And then steal 3 House No ( amount of money = 3). Maximum amount stolen = 1 + 3 = 4 . |
Example 2:
| Input :[2,7,9,3,1] Output :12 explain : Steal 1 House No ( amount of money = 2), Steal 3 House No ( amount of money = 9), Then steal 5 House No ( amount of money = 1). Maximum amount stolen = 2 + 9 + 1 = 12 . |
Tips :
| 1 <= nums.length <= 100 0 <= nums[i] <= 400 |
source : Power button (LeetCode)
link :https://leetcode-cn.com/problems/house-robber
Copyright belongs to the network . For commercial reprint, please contact the official authority , Non-commercial reprint please indicate the source .
Ideas :
Adopt the idea of dynamic programming
Suppose the current house is i, that dp[i] Indicates the total amount of the stolen house
dp[i] Your choice depends on :
1. Current house selection ,i-1 You can't choose a house ,dp[i] = dp[i-2] + nums[i]
2. The current house is not selected , It depends on dp[i-1] Value
Maximization is max(dp[i-1], dp[i-2] + nums[i])
Initial value :
dp[0] = nums[0] No choice
dp[1] = max(nums[0], nums[1]) A choice
Method 1 、 Dynamic programming
#define max(a,b) ( (a) > (b) ? (a) : (b) )
int rob(int* nums, int numsSize){
int i;
int dp[101]={0};
dp[0] = nums[0];
for(i=1; i<numsSize; i++)
{
if(i == 1)
dp[i] = max(nums[0], nums[1]);
else
dp[i]= max(dp[i-1], dp[i-2]+nums[i]);
}
return dp[numsSize - 1];
}边栏推荐
- C language exercises (recursion)
- A little understanding of GSLB (global server load balance) technology
- js获取对象中嵌套的属性值
- JSON Web Token----JWT和傳統session登錄認證對比
- Weekly summary (*63): about positive energy
- Upper computer software development - log information is stored in the database based on log4net
- AWT introduction
- 如何判断数组中是否含有某个元素
- The difference between PX EM rem
- Use of hutool Pinyin tool
猜你喜欢

gslb(global server load balance)技术的一点理解

19. Framebuffer application programming

LayoutManager布局管理器:FlowLayout、BorderLayout、GridLayout、GridBagLayout、CardLayout、BoxLayout

1480. Dynamic sum of one-dimensional array

Detailed explanation of common APIs for component and container containers: frame, panel, scrollpane

(4) Canal multi instance use

win10清除快速访问-不留下痕迹

How to configure static IP for Kali virtual machine
![BUU-Crypto-[GXYCTF2019]CheckIn](/img/b8/ad6c05977f6943f30e9975acb6eb6e.jpg)
BUU-Crypto-[GXYCTF2019]CheckIn

实用的小工具指令
随机推荐
Uninstall Google drive hard drive - you must exit the program to uninstall
JS how to convert seconds into hours, minutes and seconds display
Recommended system 1 --- framework
SQL injection - injection based on MSSQL (SQL Server)
How to clone objects
Component、Container容器常用API详解:Frame、Panel、ScrollPane
Zhanrui tankbang | jointly build, cooperate and win-win zhanrui core ecology
fastjson
卸载Google Drive 硬盘-必须退出程序才能卸载
JS arguments parameter usage and explanation
BUU-Crypto-[HDCTF2019]basic rsa
Tf/pytorch/cafe-cv/nlp/ audio - practical demonstration of full ecosystem CPU deployment - Intel openvino tool suite course summary (Part 2)
Overview of relevant subclasses of beanfactorypostprocessor and beanpostprocessor
How much computing power does transformer have
19. Framebuffer application programming
How to configure static IP for Kali virtual machine
如何获取el-tree中所有节点的父节点
QT QTableWidget 表格列置顶需求的思路和代码
Actual cases and optimization solutions of cloud native architecture
transformer坑了多少算力