C语言 | Leetcode C语言题解之第213题打家劫舍II

题目:

题解:

cpp 复制代码
int robRange(int* nums, int start, int end) {
    int first = nums[start], second = fmax(nums[start], nums[start + 1]);
    for (int i = start + 2; i <= end; i++) {
        int temp = second;
        second = fmax(first + nums[i], second);
        first = temp;
    }
    return second;
}

int rob(int* nums, int numsSize) {
    if (numsSize == 1) {
        return nums[0];
    } else if (numsSize == 2) {
        return fmax(nums[0], nums[1]);
    }
    return fmax(robRange(nums, 0, numsSize - 2), robRange(nums, 1, numsSize - 1));
}
相关推荐
晓蛋5 天前
c语言指的是什么意思
c语言·编译器·编程开发·集成开发环境·程序实例
傲世仙尊5 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
牵猫散步的鱼儿5 天前
重载、重写(覆盖)、重定义区别
c语言
phltxy5 天前
C 语言指针:从内存地址到灵活的数据访问
c语言
phltxy5 天前
C 语言中的数据存储:从类型到二进制位
c语言
旖旎夜光5 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
wuminyu5 天前
HotSpot的轻量锁与膨胀后的ObjectMonitor状态重建原理
java·linux·c语言·jvm·c++
CoderYanger5 天前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
圣保罗的大教堂5 天前
leetcode 3524. 求出数组的 X 值 I 中等
leetcode
码不停蹄Zzz5 天前
指针用法篇——malloc和free指针详解
c语言