这题目应该是翻译有题目或者我的理解有题目。。。按照题目给的不相邻的盗取逻辑运行正确,但是提交报错,如果使用全部进入但是拿最多钱的逻辑却正确了。。。
好家伙,挨家挨户走一遍不久触发报警了么?咋还正确了?
"如果两间相邻的房屋在同一晚上被小偷闯入,体系会自动报警。"这句话翻译明显有题目,应该是被小偷偷窃才会报警。
- func rob(nums []int) int {
- if len(nums) == 0 {
- return 0
- }
- if len(nums) == 1 {
- return nums[0]
- }
- pre2 := nums[0]
- pre1 := max(nums[0], nums[1])
- for i := 2; i < len(nums); i++ {
- cur := max(pre1, pre2 + nums[i])
- pre2 = pre1
- pre1 = cur
- }
- return pre1
- }
复制代码 javascript:
- /**
- * @param {number[]} nums
- * @return {number}
- */
- var rob = function(nums) {
- if (nums.length === 0) {
- return 0;
- }
- if (nums.length === 1) {
- return nums[0];
- }
- let maxMoney = nums[0];
- let pre = Math.max(nums[0], nums[1]);
- for(let i=2; i < nums.length; i++) {
- let cur = Math.max(pre, maxMoney + nums[i])
- maxMoney = pre
- pre = cur
- }
- return pre
- };
复制代码 python:
- class Solution(object):
- def rob(self, nums):
- """
- :type nums: List[int]
- :rtype: int
- """
- if len(nums) == 0:
- return 0
- if len(nums) == 1:
- return nums[0]
- maxMoney = nums[0]
- pre = max(maxMoney, nums[1])
- for i in range(2, len(nums)):
- cur = max(pre, maxMoney + nums[i])
- maxMoney = pre
- pre = cur
- return pre
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |