编程—小红书面试题 挑选总点赞数最多笔记集合

参考大佬的解法

挑选点赞数最多的不连续编号笔记集合,采用动态规划求解

不连续编号意味着选中nums[i],则不能选择nums[i+1],只能在nums[i+2:]中选择,前面的选择方案直接影响后面的选择,因此采用动态规划求解

dp[i] = x:从 i 开始挑选笔记, 最大点赞数为x

推导过程:从编号i开始挑选时,有以下两种情况:

1. 选择编号i笔记nums[i],意味着nums[i-1]不能选择,此时dp[i]=dp[i-2]+nums[i]

2. 不选择编号i笔记nums[i],此时dp[i]=dp[i-1]

n = int(input())
a = input()
nums = [int(i) for i in a.split(" ")]
dp = [0 for _ in range(n)]
count = [0 for _ in range(n)]
dp[0] = nums[0]
dp[1] = max(nums[0],nums[1])
count[0] = 1
count[1] = 1
for i in range(2,n):
    if dp[i-2]+nums[i]>dp[i-1]:  # 选择
        dp[i]=dp[i-2]+nums[i]
        count[i] = count[i-2]+1
    else:  # 不选择
        dp[i]=dp[i-1]
        count[i] = count[i-1]
print(dp[n-1],count[n-1])

要使用Python通过关键词批量采集小红书笔记的正文、笔记链接、发布时间、评论,你需要利用小红书的API进行据抓取,或者使用爬虫技术进行网页内容的解析。以下是大致的步骤: 1. 分析小红书网页结构:首先,你需要使用浏览器的开发者工具来检查小红书网页的结构,了解如何通过网络请求获取据,以及所需据如何在网页中表示。 2. 确定据来源:如果小红书提供了公开的API,那么使用API接口是最直接和安全的方法。如果API不可用或者限制较大,可能需要使用网络爬虫技术来模拟用户行为抓取据。 3. 使用合适的库:对于API的据请求,可以使用Python中的`requests`库来发送网络请求。对于爬虫,可以使用`BeautifulSoup`或`lxml`来解析HTML内容。 4. 编写爬虫脚本:根据你的需求,编写Python脚本来发送关键词查询请求,处理响应据,并提取出笔记的正文、链接、发布时间、评论。 5. 遵守法律法规和网站政策:在进行据采集时,要遵守相关法律法规和小红书的使用协议,不要进行大规模的据抓取,以免对服务器造成不必要的负担。 由于涉及到网络爬虫技术,这里提供一个简单的代码框架示例,用于说明如何使用`requests`和`BeautifulSoup`: ```python import requests from bs4 import BeautifulSoup # 示例:使用假设的API URL和关键词 api_url = 'https://www.xiaohongshu.com/api/search' params = { 'keyword': '你的关键词', 'page': '1', # 其他可能的参... } # 发送请求 response = requests.get(api_url, params=params) response_json = response.json() # 解析响应内容 for item in response_json.get('items', []): # 提取笔记信息 note_text = item.get('content', '') # 笔记正文 note_url = item.get('url', '') # 笔记链接 # 其他信息... 如发布时间、评论 # 注意:这里的字段名是假设的,需要根据实际API返回的据结构来获取 print(f'笔记正文: {note_text}') print(f'笔记链接: {note_url}') # 打印其他信息 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值