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));
}
相关推荐
卑微求AC29 分钟前
(C语言贪吃蛇)11.贪吃蛇方向移动和刷新界面一起实现面临的问题
c语言·开发语言
冷静 包容2 小时前
C语言学习之 没有重复项数字的全排列
c语言·开发语言·学习
ROBIN__dyc2 小时前
C语言基本概念
c语言·开发语言
大二转专业4 小时前
408算法题leetcode--第24天
考研·算法·leetcode
__AtYou__10 小时前
Golang | Leetcode Golang题解之第448题找到所有数组中消失的数字
leetcode·golang·题解
转调11 小时前
每日一练:地下城游戏
开发语言·c++·算法·leetcode
不穿格子衬衫11 小时前
常用排序算法(下)
c语言·开发语言·数据结构·算法·排序算法·八大排序
aqua353574235812 小时前
蓝桥杯-财务管理
java·c语言·数据结构·算法
huanxiangcoco12 小时前
152. 乘积最大子数组
python·leetcode
Word码13 小时前
数据结构:栈和队列
c语言·开发语言·数据结构·经验分享·笔记·算法