打家劫舍(二)
题号:NC230034
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

你是一个经验丰富的小偷,准备偷沿湖的一排房间,每个房间都存有一定的现金,为了防止被发现,你不能偷相邻的两家,即,如果偷了第一家,就不能再偷第二家,如果偷了第二家,那么就不能偷第一家和第三家。沿湖的房间组成一个闭合的圆形,即第一个房间和最后一个房间视为相邻。
给定一个长度为n的整数数组nums,数组中的元素表示每个房间存有的现金数额,请你计算在不被发现的前提下最多的偷窃金额。

数据范围:数组长度满足 ,数组中每个值满足
示例1

输入

复制
[1,2,3,4]

返回值

复制
6

说明

最优方案是偷第 2 4 个房间      
示例2

输入

复制
[1,3,6]

返回值

复制
6

说明

由于 1 和 3 是相邻的,因此最优方案是偷第 3 个房间