2021-11-16thought

1 53. 最大子序和

class Solution:
    def maxSubArray(self, nums: List[int]) -> int:
        if len(nums) == 1:
            return nums[0]
        curr = nums[0]
        max_sum = nums[0]
        for i in range (1,len(nums)):
            if curr<0:
                curr = nums[i]
            else:
                curr += nums[i]
            max_sum = max(max_sum,curr)
        return max_sum

动态规划

class Solution:
    def maxSubArray(self, nums: List[int]) -> int:
        dp = [0]*len(nums)
        dp[0] = nums[0]
        result = nums[0]
        for i in range(1,len(nums)):
            dp[i] = max(dp[i-1]+nums[i],nums[i])
            result = max(result,dp[i])
        return result

2 3. 无重复字符的最长子串

滑动窗口

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        n = len(s)
        left,right = 0,0
        window = []
        max_len = 0
        if n<=1:
            return n
        while right<n:
            if s[right] not in window:
                max_len = max(max_len,right-left+1)
                window.append(s[right])
                right += 1
            else:
                window.remove(s[left])
                left += 1
        return max_len

3 1、两数之和

暴力法:

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        result = []
        for i in range(0,len(nums)):
            for j in range(i+1,len(nums)):
                sum = nums[i]+nums[j]
                if sum == target:
                    result.append(i)
                    result.append(j)
                    return result

哈希表

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        result = []
        map = {}
        for i in range(0,len(nums)):
            map[nums[i]] = i
        for j in range(0,len(nums)):
            num = target-nums[j]
            if num in map and map[num]!=j:
                result.append(j)
                result.append(map[num])
                return result

4 215. 数组中的第K个最大元素

最小堆

class Solution:
    def findKthLargest(self, nums: List[int], k: int) -> int:
        minheap = []
        heapify(minheap)
        for num in nums:
            heappush(minheap,num)
            if len(minheap)>k:
                heappop(minheap)
        return minheap[0]

先排序后找

class Solution:
    def findKthLargest(self, nums: List[int], k: int) -> int:
        nums.sort()
        n = len(nums)
        return  nums[n-k]

纯属记录:部分代码参考B站博主

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
chain-of-thought代码是一种用来构建和理解思维链条的程序代码。思维链条是指思考过程中的逻辑思维的一系列连接。这种代码的作用是帮助我们在程序中整理和管理思维的流程,使其更加清晰和易于理解。 chain-of-thought代码的实现可以使用各种编程语言,例如Python或Java等。它通常包含以下几个关键元素: 1. 节点:节点是思维链条的基本单元,代表了一个关键的思考点或一个执行的步骤。每个节点都有一个唯一的标识符和相关的属性。 2. 连接:连接用于建立节点之间的联系,表示它们之间的逻辑关系。例如,节点A可能需要在节点B之前执行,这时可以通过连接来表达这一关系。 3. 流程:流程是思维链条中节点和连接的组合,描述了整个思考过程。可以通过定义和组织节点和连接的方式来构建和管理流程。 4. 输入和输出:节点可以接收输入参数,并且会产生输出结果。输入和输出数据可以在节点之间通过连接进行传递,从而形成输入输出链条。 通过使用chain-of-thought代码,我们可以更加系统地组织和管理我们的思维过程。它可以帮助我们跟踪和追溯思考中的每个步骤,清晰地展示了我们的思维逻辑。这对于团队合作和项目管理非常有帮助,在多人协作的环境中,大家可以共享和理解彼此的思考过程。 总而言之,chain-of-thought代码是一种用来构建和理解思维链条的程序代码。它通过定义节点、连接、流程以及输入输出来描述和管理思考过程,从而帮助我们更加清晰地表达和理解思维的逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值