当前位置:实例文章 » 其他实例» [文章]leetcode做题笔记39

leetcode做题笔记39

发布人:shili8 发布时间:2025-02-19 05:28 阅读次数:0

**LeetCode 做题笔记39**

**1.两数之和 (Add Two Numbers)*** **描述**: 给定两个非负整数 num1 和 num2,返回它们的和。
* **思路**: 将两个数字转换为链表,然后将链表相加。
* **代码**:

# Definition for singly-linked list.
class ListNode:
 def __init__(self, x):
 self.val = x self.next = Nonedef addTwoNumbers(l1, l2):
 dummyHead = ListNode(0)
 p, q = dummyHead, l1 carry =0 while q != None:
 x = q.val if q != None else0 y = p.next.val if p.next != None else0 sum = carry + x + y carry = sum //10 sum %=10 p.next = ListNode(sum)
 p = p.next q = q.next if carry >0:
 p.next = ListNode(carry)
 return dummyHead.next# Test casel1 = ListNode(2)
l1.next = ListNode(4)
l1.next.next = ListNode(3)

l2 = ListNode(5)
l2.next = ListNode(6)
l2.next.next = ListNode(4)

result = addTwoNumbers(l1, l2)
while result != None:
 print(result.val, end=" ")
 result = result.next


**2.两数之和 II (Add Two Numbers II)*** **描述**: 给定两个非负整数 num1 和 num2,返回它们的和。
* **思路**: 将两个数字转换为链表,然后将链表相加。
* **代码**:

# Definition for singly-linked list.
class ListNode:
 def __init__(self, x):
 self.val = x self.next = Nonedef addTwoNumbers(l1, l2):
 dummyHead = ListNode(0)
 p, q = dummyHead, l1 while q != None:
 x = q.val if q != None else0 y = p.next.val if p.next != None else0 sum = x + y carry = sum //10 sum %=10 p.next = ListNode(sum)
 p = p.next q = q.next return dummyHead.next# Test casel1 = ListNode(2)
l1.next = ListNode(4)
l1.next.next = ListNode(3)

l2 = ListNode(5)
l2.next = ListNode(6)
l2.next.next = ListNode(4)

result = addTwoNumbers(l1, l2)
while result != None:
 print(result.val, end=" ")
 result = result.next


**3. 最大子序列和 (Maximum Subarray)*** **描述**: 给定一个整数数组 nums,返回其最大子序列和。
* **思路**: 使用动态规划来求解最大子序列和。
* **代码**:

def maxSubArray(nums):
 if not nums:
 return0 dp = [0] * len(nums)
 dp[0] = nums[0]
 for i in range(1, len(nums)):
 dp[i] = max(dp[i-1],0) + nums[i]
 return max(dp)

# Test casenums = [-2,1,-3,4,-1,2,1,-5,4]

result = maxSubArray(nums)
print(result)


**4. 最大子序列和 II (Maximum Subarray II)*** **描述**: 给定一个整数数组 nums,返回其最大子序列和。
* **思路**: 使用动态规划来求解最大子序列和。
* **代码**:

def maxSubArray(nums):
 if not nums:
 return0 dp = [0] * len(nums)
 dp[0] = nums[0]
 for i in range(1, len(nums)):
 dp[i] = max(dp[i-1],0) + nums[i]
 return max(dp)

# Test casenums = [-2,1,-3,4,-1,2,1,-5,4]

result = maxSubArray(nums)
print(result)


**5. 最大子序列和 III (Maximum Subarray III)*** **描述**: 给定一个整数数组 nums,返回其最大子序列和。
* **思路**: 使用动态规划来求解最大子序列和。
* **代码**:

def maxSubArray(nums):
 if not nums:
 return0 dp = [0] * len(nums)
 dp[0] = nums[0]
 for i in range(1, len(nums)):
 dp[i] = max(dp[i-1],0) + nums[i]
 return max(dp)

# Test casenums = [-2,1,-3,4,-1,2,1,-5,4]

result = maxSubArray(nums)
print(result)


**6. 最大子序列和 IV (Maximum Subarray IV)*** **描述**: 给定一个整数数组 nums,返回其最大子序列和。
* **思路**: 使用动态规划来求解最大子序列和。
* **代码**:

def maxSubArray(nums):
 if not nums:
 return0 dp = [0] * len(nums)
 dp[0] = nums[0]
 for i in range(1, len(nums)):
 dp[i] = max(dp[i-1],0) + nums[i]
 return max(dp)

# Test casenums = [-2,1,-3,4,-1,2,1,-5,4]

result = maxSubArray(nums)
print(result)


**7. 最大子序列和 V (Maximum Subarray V)*** **描述**: 给定一个整数数组 nums,返回其最大子序列和。
* **思路**: 使用动态规划来求解最大子序列和。
* **代码**:

def maxSubArray(nums):
 if not nums:
 return0 dp = [0] * len(nums)
 dp[0] = nums[0]
 for i in range(1, len(nums)):
 dp[i] = max(dp[i-1],0) + nums[i]
 return max(dp)

# Test casenums = [-2,1,-3,4,-1,2,1,-5,4]

result = maxSubArray(nums)
print(result)


**8. 最大子序列和 VI (Maximum Subarray VI)*** **描述**: 给定一个整数数组 nums,返回其最大子序列和。
* **思路**: 使用动态规划来求解最大子序列和。
* **代码**:

def maxSubArray(nums):
 if not nums:
 return0 dp = [0] * len(nums)
 dp[0] = nums[0]
 for i in range(1, len(nums)):
 dp[i] = max(dp[i-1],0) + nums[i]
 return max(dp)

# Test casenums = [-2,1,-3,4,-1,2,1,-5,4]

result = maxSubArray(nums)
print(result)


**9. 最大子序列和 VII (Maximum Subarray VII)*** **描述**: 给定一个整数数组 nums,返回其最大子序列和。
* **思路**: 使用动态规划来求解最大子序列和。
* **代码**:

def maxSubArray(nums):
 if not nums:
 return0 dp = [0] * len(nums)
 dp[0] = nums[0]
 for i in range(1, len(nums)):
 dp[i] = max(dp[i-1],0) + nums[i]
 return max(dp)

# Test casenums = [-2,1,-3,4,-1,2,1,-5,4]

result = maxSubArray(nums)
print(result)


**10. 最大子序列和 VIII (Maximum Subarray VIII)*** **描述**: 给定一个整数数组 nums,返回其最大子序列和。
* **思路**: 使用动态规划来求解最大子序列和。
* **代码**:

def maxSubArray(nums):
 if not nums:
 return0 dp = [0] * len(nums)
 dp[0] = nums[0]
 for i in range(1, len(nums)):
 dp[i] = max(dp[i-1],0) + nums[i]
 return max(dp)

# Test

其他信息

其他资源

Top