日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

边工作边刷题:70天一遍leetcode: day 92

發布時間:2024/1/17 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 边工作边刷题:70天一遍leetcode: day 92 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

House Robber I/II/III

這題代表了單向線性dp的基本pattern: build local best value at each element and track the global optimal. 這題的要點是local是前k個房間的最優解,這個解不一定要選第k個房間。這個local解是比較k-1的optimal和k-2 optimal + current value。之所以不以必選第k個房間作local是因為有可能最優解有連續2或多個房間不選,比如100,1,1,100

III:

  • binary tree和array的思路是一樣的,對于當前root,需要前面兩層的結果:left/right subtree的max和left/right的子樹的max
  • 同時,和array一樣,返回的值不是必然包括root的
  • 在計算left/right子樹的max時,只需要sum,因為root對于兩層后只關心sum
class Solution(object):def rob(self, nums):""":type nums: List[int]:rtype: int"""if not nums: return 0pre_2 = nums[0]if len(nums)<2: return pre_2pre_1 = max(nums[0],nums[1])cur = pre_1for i in range(2, len(nums)):cur = max(pre_1, pre_2+nums[i])pre_2=pre_1pre_1=curreturn cur class Solution(object):def rob(self, nums):""":type nums: List[int]:rtype: int"""def robOneDir(nums):pre_1 = nums[0]pre_2 = max(nums[0], nums[1])for i in range(2, len(nums)):cur = max(pre_2, pre_1+nums[i])pre_1=pre_2pre_2=curreturn pre_2if not nums: return 0if len(nums)<2: return nums[0]if len(nums)==2: return max(nums[0], nums[1])nums1,nums2=nums[0:-1],nums[1:]return max(robOneDir(nums1), robOneDir(nums2)) # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = Noneclass Solution(object):def rob(self, root):""":type root: TreeNode:rtype: int"""def robRec(root):pre_left_1,pre_left_2,pre_right_1,pre_right_2=0,0,0,0if root.left:pre_left_1, pre_left_2 = robRec(root.left)if root.right:pre_right_1, pre_right_2 = robRec(root.right)cur = max(pre_left_2+root.val+pre_right_2, pre_left_1+pre_right_1)return cur, pre_left_1+pre_right_1if not root: return 0maxValue, noUse = robRec(root)return maxValue

轉載于:https://www.cnblogs.com/absolute/p/6041360.html

總結

以上是生活随笔為你收集整理的边工作边刷题:70天一遍leetcode: day 92的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。