首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
明刘
获赞
121
粉丝
4
关注
5
看过 TA
17
Imperial College London
2022
Java
IP属地:未知
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑明刘吗?
发布(3)
刷题
明刘
2021-11-08 21:43
Java
题解 | #合唱队#
#合唱队# 此题是最长递增子序列的变体,基本思路是对原序列从左到右和从右到左分别求出到每个元素的最长递增子序列的长度。例如,原序列为长度为N的序列[8,20,12,15,10,9],从左至右的到序列里每个元素的最长递增子序列为l1=[1,2,2,3,2,2],从右至左为l2=[1,4,3,3,2,1],l1+l2=[2,6,5,6,4,3]。那么合唱队最长队伍是L = max(l1+l2)-1,减1是因为计算l1和l2时重复计算了一次元素本身。因此最少出列人数为原序列长度N-L。 此题关键在于求出l1,l2。可由动态规划求出。用dp[i]表示从左至右到原序列第i个元素的最长递增子序列的长度,从...
0
点赞
评论
收藏
转发
明刘
2021-11-06 03:37
Java
题解 | #数组分组#
# 深度优先递归 # 题目要求将数组分为两组,5和3的倍数不能在同一组内,非5或3的倍数随意放在任意一组,要求分配之后两组和相等 # 根据题意将数组中的5和3分别放到两组中,然后递归穷举所有非5或3的倍数的分组情况 def dfs(three, five, other): if not other: if sum(three) == sum(five): return True else: return False if dfs(three+other[:1], five, other[1:]): ...
0
点赞
评论
收藏
转发
明刘
2021-10-31 03:01
已编辑
Java
题解 | #走方格的方案数#
# 题意符合排列组合问题,从左上到右下需要向右移动m次和向下移动n次(或向右n次和向下m次) # 移动总步数为T=m+n,则可能的移动情况为C(T,m)或者C(T,n) def factorial(n): res = 1 for i in range(1,n+1): res *= i return res while True: try: m,n = list(map(int,input().split())) # calculate C_m+n_m s = factorial(m+n)/(fac...
0
点赞
评论
收藏
转发
1
工具箱
TA的圈子
暂未加入圈子
TA的圈子
TA的笔记
暂无笔记
TA的笔记
登录
0
天
已登录
0
天
连续登录
0
人
今日访客
牛客网
牛客企业服务