首页 > 编程语言 >#yyds干货盘点# LeetCode程序员面试金典:打家劫舍 II

#yyds干货盘点# LeetCode程序员面试金典:打家劫舍 II

时间:2023-08-11 23:35:41浏览次数:44  
标签:yyds 偷窃 nums int 金典 II start length 房屋

题目:

你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。

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

 

示例 1:

输入:nums = [2,3,2]
输出:3
解释:你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。

示例 2:

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

示例 3:

输入:nums = [1,2,3]
输出:3

代码实现:

class Solution {
    public int rob(int[] nums) {
        int length = nums.length;
        if (length == 1) {
            return nums[0];
        } else if (length == 2) {
            return Math.max(nums[0], nums[1]);
        }
        return Math.max(robRange(nums, 0, length - 2), robRange(nums, 1, length - 1));
    }

    public int robRange(int[] nums, int start, int end) {
        int first = nums[start], second = Math.max(nums[start], nums[start + 1]);
        for (int i = start + 2; i <= end; i++) {
            int temp = second;
            second = Math.max(first + nums[i], second);
            first = temp;
        }
        return second;
    }
}

标签:yyds,偷窃,nums,int,金典,II,start,length,房屋
From: https://blog.51cto.com/u_13321676/7053964

相关文章

  • #yyds干货盘点# LeetCode程序员面试金典:两整数之和
    1.简述:给你两个整数 和 ,不使用 运算符  和  ,计算并返回两整数之和。ab+- 示例1:输入:a=1,b=2输出:3示例2:输入:a=2,b=3输出:52.代码实现:classSolution{publicintgetSum(inta,intb){while(b!=0){intcarry=(a&b)<<1;......
  • # yyds干货盘点 # 盘点一个dataframe读取csv文件失败的问题
    大家好,我是皮皮。一、前言前几天在Python钻石群【心田有垢生荒草】问了一个Pandas数据处理的问题,一起来看看吧。大佬们求教个方法 现在有个数据量很大的dataframe 要吐csv格式 但结果总是串行 加了encoding='utf-8'还是没解决 还有其他方法么?下图是他提供的图片:二、实现......
  • LeetCode 1049.最后一块石头的重量II
    1.题目:1049. 最后一块石头的重量II有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x<=y。那么粉碎的可能结果如下:如果 x==y,那么两块石头都会被完全粉......
  • IIS8.5 Error Code 0x8007007e HTTP 错误 500.19的解决方法
    windowserver2012R2IIS8.5引用:https://www.52jbj.com/yunying/340443.htmlHTTP错误500.19-InternalServerError  无法访问请求的页面,因为该页的相关配置数据无效。    详细错误信息    模块DynamicCompressionModule    通知SendResponse    处......
  • #yyds干货盘点#nginx中fastcgi_params文件及相应配置
    在ubuntu服务器安装完php7.4-fdm和nginx后,发现fastcgi_params没有生成,也可能是二次安装的关系。所以临时去网上找了个手工建上。特意在这里记录下,避免下次再遇到同样的问题。#脚本文件请求的路径,也就是说当访问127.0.0.1/index.php的时候,需要读取网站根目录下面的index.php文件,如......
  • Yuno loves sqrt technology III
    YunolovessqrttechnologyIII题意区间询问众数,强制在线。题解经典分块题,记一下。对于序列分块,记\(f_{i,j}\)代表第\(i\)个块到第\(j\)个块的众数出现次数。考虑询问的时候怎么做,我们只需要考虑散块。对于散块的元素\(a_i\)查找其在询问区间\([l,r]\)的个数,与......
  • Leetcode167. 两数之和 II - 输入有序数组(双指针)
    题目:两数之和II-输入有序数组(双指针)给你一个下标从1开始的整数数组numbers,该数组已按非递减顺序排列,请你从数组中找出满足相加之和等于目标数target的两个数。如果设这两个数分别是numbers[index1]和numbers[index2],则1<=index1<index2<=numbers.length......
  • 力扣---1289. 下降路径最小和 II
    给你一个 nxn 整数矩阵 grid ,请你返回 非零偏移下降路径 数字和的最小值。非零偏移下降路径 定义为:从 grid 数组中的每一行选择一个数字,且按顺序选出来的数字中,相邻数字不在原数组的同一列。 示例1:输入:grid=[[1,2,3],[4,5,6],[7,8,9]]输出:13解释:所有非零偏......
  • ASCII特殊码
    十进制十六进制控制字符转义字符说明Ctrl+下列字母00NUL\0Nullcharacter(空字符)@11SOHStartofHeader(标题开始)A22STXStartofText(正文开始)B33ETXEndofText(正文结束)C44EOTEndofTransmission(传输结束)D55E......
  • pg库报UnicodeDecodeError 'ascii' codec can't decode byte 0xe4 in position 0 ordi
    UnicodeDecodeError'ascii'codeccan'tdecodebyte0xe4inposition0ordinalnotinrange128其实就是加个:client_encoding配置#1、直接使用psycopg2def__init__(self,dict_flag=False):self.conn=psycopg2.connect(host=PostgresParams().get_host()......