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));
}
相关推荐
IT方大同2 小时前
(实时操作系统)线程管理
c语言·开发语言·嵌入式硬件
_日拱一卒3 小时前
LeetCode:滑动窗口的最大值
数据结构·算法·leetcode
老约家的可汗4 小时前
list 容器详解:基本介绍与常见使用
c语言·数据结构·c++·list
mifengxing4 小时前
力扣HOT100——(1)两数之和
java·数据结构·算法·leetcode·hot100
Z.风止4 小时前
Large Model-learning(2)
开发语言·笔记·python·leetcode
爱编码的小八嘎5 小时前
C语言完美演绎6-10
c语言
AlenTech5 小时前
139. 单词拆分 - 力扣(LeetCode)
算法·leetcode·职场和发展
3壹5 小时前
STM32按键检测与上拉电阻详解
c语言·stm32·嵌入式硬件
AI+程序员在路上6 小时前
新手进入嵌入式行业方法与方向选择
c语言·开发语言·单片机·嵌入式硬件
always_TT6 小时前
栈内存 vs 堆内存:区别与使用场景
c语言