环形打家劫舍


Submit solution

Points: 200
Time limit: 1.0s
Memory limit: 4M

Author:
Problem type
Allowed languages
C, C++

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定数量的现金。 所有房屋都围成一圈,这意味着第一个房子和最后一个房子是相邻的。
相邻的房子不能在同一晚上被偷。
给定一个代表每间房屋所藏现金的非负整数数组 nums,
请你计算在不触动警报装置的情况下,今晚能够偷窃到的最高金额。

第一行输入一个整数n,表示有n个房屋 第二行输入n个整数,空格隔开,表示每一个房间里面的现金。

示例 1:

输入:

3
2 3 2

输出:

3
解释:不能偷第一个房子(2)和最后一个房子(2),因为它们是相邻的。所以只能偷中间的房子(3)。
示例 2:

输入:

4
1 2 3 1

输出:

4
解释:

可以偷第一个和第三个房子(1 + 3 = 4)。

示例 3:

输入:

3
1 2 3

输出:

3
提示:

\(1 \le nums.length \le 100\)
\(0 \le nums[i] \le 1000\)


Comments

There are no comments at the moment.