Advertisement
HXXXXJ

213. House Robber II

Feb 18th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 0.87 KB | None | 0 0
  1.     func rob(_ nums: [Int]) -> Int {
  2.         guard nums.count != 0 else{ return 0}
  3.         guard nums.count > 1 else {return nums[0]}
  4.        
  5.         var dp1 = [Int](repeating: 0, count: nums.count)
  6.         var dp2 = [Int](repeating: 0, count: nums.count)
  7.         for i in 0 ..< nums.count - 1{
  8.             if i == 0 {
  9.                 dp1[i] = nums[i]
  10.             }else if i == 1 {
  11.                 dp1[i] = max(dp1[i-1] , nums[i])
  12.             }else{
  13.                 dp1[i] = max(dp1[i-1] , nums[i] + dp1[i-2])
  14.             }
  15.         }
  16.         for i in 1 ..< nums.count{
  17.             if i == 1 {
  18.                 dp2[i] = nums[i]
  19.             }else if i == 2 {
  20.                 dp2[i] = max(dp2[i-1] , nums[i])
  21.             }else{
  22.                 dp2[i] = max(dp2[i-1] , nums[i] + dp2[i-2])
  23.             }
  24.         }
  25.         return max(dp1[nums.count - 2], dp2[nums.count - 1])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement