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));
}
相关推荐
Jeremy爱编码7 分钟前
leetcode热题组合总和
算法·leetcode·职场和发展
努力学算法的蒟蒻17 分钟前
day57(1.8)——leetcode面试经典150
算法·leetcode·面试
SoveTingღ21 分钟前
【C语言】什么是野指针?
c语言·指针·嵌入式软件
元亓亓亓35 分钟前
LeetCode热题100--5. 最长回文子串--中等
linux·算法·leetcode
千金裘换酒39 分钟前
LeetCode 环形链表+升级版环形链表
算法·leetcode·链表
lowhot1 小时前
C语言UI框架
c语言·开发语言·笔记·ui
ベadvance courageouslyミ1 小时前
项目一(线程邮箱)
c语言·线程·makefile·进程间通信·线程邮箱
空空潍2 小时前
hot100-滑动窗口最大值(day11)
数据结构·c++·算法·leetcode
Herbert_hwt2 小时前
C语言表达式求值详解:从原理到实战的完整指南
c语言
朔北之忘 Clancy2 小时前
2025 年 6 月青少年软编等考 C 语言一级真题解析
c语言·开发语言·c++·学习·算法·青少年编程·题解