leetcode
AirX
There is no free lunch.
展开
-
Leetcode 3. 无重复字符的最长子串
class Solution: # 滑动窗口双指针 def lengthOfLongestSubstring(self, s: str) -> int: occ = set() n = len(s) right, res = -1 , 0 for left in range(n): if left != 0: occ.remove(s[left-1])原创 2022-01-05 10:02:13 · 3182 阅读 · 0 评论 -
剑指Offer 48. 最长不含重复字符的子字符串
class Solution: # hashmap + 动态规划 def lengthOfLongestSubstring(self, s: str) -> int: hashmap = {} tmp, res = 0, 0 for j in range(len(s)): # dict.get(keyname, defaultValue) i = hashmap.get(s[j], -1)原创 2022-01-05 09:51:14 · 235 阅读 · 0 评论 -
剑指Offer 63. 股票的最大利润
class Solution: # 经典的动态规划dp # 注意题目,是一次买卖,所以可以用一个变量保存当前最小的买入价格 # 空间上可以不用数组,用一个变量保存结果即可 def maxProfit(self, prices: List[int]) -> int: res = 0 cost = float("+inf") # 这是正无穷大 for price in prices: cost原创 2022-01-05 05:43:20 · 174 阅读 · 0 评论 -
剑指Offer 42. 连续子数组的最大和
class Solution: # 动态规划思想dp + 在原数组上修改 # 注意不是看nums原本里面的值的正负,而是一个个与前一个数相加后的正负 def maxSubArray(self, nums: List[int]) -> int: for i in range(1,len(nums)): nums[i] += max(nums[i-1], 0) return max(nums) ...原创 2022-01-04 15:25:03 · 255 阅读 · 0 评论