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));
}
相关推荐
Tisfy23 分钟前
LeetCode 2553.分割数组中数字的数位:模拟(maybe+翻转)——java也O(1)
java·数学·算法·leetcode·题解·模拟·取模
Controller-Inversion37 分钟前
42. 接雨水
数据结构·算法·leetcode
Controller-Inversion38 分钟前
33. 搜索旋转排序数组
数据结构·算法·leetcode
驼同学.1 小时前
【求职季】LeetCode Hot 100 渐进式扫盲手册(Python版)
python·算法·leetcode
宵时待雨1 小时前
优选算法专题6:模拟
数据结构·c++·算法·leetcode·职场和发展
Liangwei Lin1 小时前
LeetCode 35. 搜索插入位置
数据结构·算法·leetcode
邪修king2 小时前
C++ 继承超全详解:核心语法、作用域、默认函数、菱形继承与避坑指南
c语言·c++
djarmy2 小时前
C 标准库 `<stdio.h>` 完整函数清单(官方标准 + 常用全部函数)
c语言·c++·算法
洛水水2 小时前
【力扣100题】22. 矩阵置零
算法·leetcode·矩阵
Liangwei Lin2 小时前
LeetCode 78. 子集
数据结构·算法·leetcode