class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param nums int整型vector
     * @return int整型
     */
    int rob(vector<int>& nums) {
        // write code here
        if (nums.empty())    return 0;
        if (nums.size() == 1) return nums[0];
        int n = nums.size();
        auto helper = [&](int l,int r){
            int prev1=0,prev2=0;
            for(int tmp=l;tmp<=r;tmp++){
                int cur = max(prev1+nums[tmp],prev2);
                prev1 = prev2;
                prev2 = cur;
            }
            return prev2;
        };
        int res = max(helper(0,n-2),helper(1,n-1));
        return res;
    }
};