当前位置: 首页 > 知识库问答 >
问题:

房子抢劫犯的问题如何这样做

江渊
2023-03-14
    null
    null
class Solution {
public int rob(int[] nums) {
    int sim=0;
    int sum=0;
    int i,j;

    for(i=0;i<nums.length;i++,i++){
        sim+=nums[i];
    }
    for(j=1;j<nums.length;j++,j++){
        sum+=nums[j];
    }
    int r= Math.max(sim,sum);
    return r;
}
}

当数组长度为奇数时,如何执行此逻辑?我们能这样做吗,即使长度相等,输出也是正确的

共有1个答案

龙华翰
2023-03-14

你的解决方案是在抢劫前一个房子后跳过一个房子。这并不总是提供最大的产出。考虑以下情况:[100,1,1,100]。根据您的解决方案,Sim==101Sum==101,但是正确的解决方案是200。(抢劫第0号和第3号房子)。

我提出了两种可能的解决方案:1。使用递归,2。使用DP。

使用递归,您可以选择抢劫一个房子并跳过下一个,或者不抢劫一个房子并继续下一个。因此,您将有两个递归情况,这将导致O(2^n)时间复杂度和O(n)空间复杂度。

public int rob(int[] nums) {
    return robHelper(nums, 0, 0);
}

private int robHelper(int[] nums, int ind, int money) {
    if (ind >= nums.length) return money;

    int rec1 = robHelper(nums, ind+1, money);
    int rec2 = robHelper(nums, ind+2, money+nums[ind]);
    return Math.max(rec1, rec2);
}
public int rob(int[] nums) {
    int currmax = 0;
    int prevmax = 0;

    for (int i = 0; i < nums.length; i++) {
        int iSum = prevmax + nums[i];
        prevmax = currmax;
        currmax = Math.max(currmax, iSum);
    }
    return currmax;
}
 类似资料:
  • 我已经花了一个多小时试图解决这个问题,但我什么都没做。 当我试图使用Maven编译我的项目时,我得到了以下错误: [错误]无法执行目标组织。阿帕奇。专家插件:maven assembly插件:2.2-beta-5:single(默认cli)在GankALane项目上:无法解析mojo org的配置。阿帕奇。专家插件:maven assembly插件:2.2-beta-5:单参数存档:在组织中找不到

  • 我想实现Android房间持久性。这是我的DAO接口。 出于某种原因,我有以下编译错误: 错误:可观察的查询返回类型(LiveData、Flowable、DataSource、DataSourceFactory等)只能与直接或间接(例如通过@关系)访问至少一个表的SELECT查询一起使用。对于@RawQuery,您应该通过observedEntities字段指定要观察的表的列表。公开摘要andro

  • 我开始使用最新的androidx。支持io的文件室版本。reactivex返回类型。 简单dao类 生成用户dao\u Impl。java出现错误 错误:从内部类访问局部变量用户;需要宣布为最终 突出显示的字段在此方法中 的确,在java中应该将声明为final,但它是由类生成的。有人遇到过这个吗?

  • 启动错误 ApplicationContext.若要显示条件报告,请在启用“调试”的情况下重新运行应用程序。2019-10-17 15:44:43.968错误10460--[main]O.S.Boot.SpringApplication:应用程序运行失败 我的pom.xml:

  • 我正试图在Android Studio上调试我的项目——一个非常简单的东西——hello world。我得到这个信息: "安装未成功。应用程序无法安装:INSTALL_FAILED_MISSING_SHARED_LIBRARY apk列表:[0]'C:\Users\Pierr\AndroidStudioProjects\Hello\app\build\outputs\apk\debug\app d