NLP 常用技术

动态规划

动态规划算法的核心就是记住已经解决过的子问题的解
记住求解的方式有两种:①自顶向下的备忘录法 ②自底向上

斐波那契数列问题

自顶向下

def fib_bp(n):
    a,b = 1,1
    c =0
    for i in range(2,n):
        c = a + b
        a = b
        b = c
    return c

递归

def fibonacci(n):
    if n==1 or n == 2:
        return 1
    else:
        return fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(8))

Maximum Vlaue Continuous Subsequence

给定数组,寻找子数组使他们之和最大

# A[j] = max{A[j-1]+arr[j],arr[j]}
import numpy as np
import sys
def max_subseq(arr):
    max_current = 0
    max_so_far = -sys.maxsize
    for i in range(0,len(arr)):
        if max_current + arr[i] >= arr[i]:
            max_current = max_current +arr[i]
        else:
            max_current = arr[i]

        if max_so_far < max_current:
            max_so_far = max_current

    return max_so_far


print(max_subseq(np.array([-2,-3,4,-1,-2,1,5,-3])))

Good-Turning Smoothing

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值