5369. 统计作战单位数
n 名士兵站成一排。每个士兵都有一个 独一无二 的评分 rating 。
每 3 个士兵可以组成一个作战单位,分组规则如下:
从队伍中选出下标分别为 i、j、k 的 3 名士兵,他们的评分分别为 rating[i]、rating[j]、rating[k]
作战单位需满足: rating[i] < rating[j] < rating[k] 或者 rating[i] > rating[j] > rating[k] ,其中 0 <= i < j < k < n
请你返回按上述条件可以组建的作战单位数量。每个士兵都可以是多个作战单位的一部分。示例 1:
输入:rating = [2,5,3,4,1]
输出:3
解释:我们可以组建三个作战单位 (2,3,4)、(5,4,1)、(5,3,1)1.题意给的数据量来看,10的6次方,暴力也可以过
2.dfs
3.dp
dp[i]表示第i个元素比i之前的多少个元素大,假如i前面一个元素是index,nums[i]>nums[index],且nums[index]>0则第i个元素可以组成nums[index]个符合题意的结果
class Solution(object):def numTeams(self, rating):""":type rating: List[int]:rtype: int"""res=0for i in range(len(rating)):for j in range(i+1,len(rating)):for k in range(j+1,len(rating)):if rating[i] < rating[j] < rating[k] or rating[i] > rating[j] > rating[k]:res+=1return resclass Solution(object):def numTeams(self, rating):self.res=0def dfs(rating,path):if len(path)==3:if (path[0]>path[1]>path[2] or path[0]<path[1]<path[2]):self.res+=1return for i in range(len(rating)):if len(path)<3:path.append(rating[i])dfs(rating[i+1:],path)path.pop()else:breakdfs(rating,[])return self.resclass Solution(object):def numTeams(self, rating):def f(nums):dp=[0 for _ in range(len(nums))]res=0for i in range(len(nums)):index=i-1while index>=0:if nums[i]>nums[index]:dp[i]+=1if dp[index]>0:res+=dp[index]index-=1return resreturn f(rating[::-1])+f(rating)
5369. 统计作战单位数相关推荐
- LeetCode 1395. 统计作战单位数(蛮力法)
1. 题目 n 名士兵站成一排.每个士兵都有一个 独一无二 的评分 rating . 每 3 个士兵可以组成一个作战单位,分组规则如下: 从队伍中选出下标分别为 i.j.k 的 3 名士兵,他们的评分 ...
- 高级数据结构1—初识树状数组—快速求得前缀和和修改某一元素值
- 本人的LeetCode账号:魔术师的徒弟,欢迎关注获取每日一题题解,快来一起刷题呀~ 本人Gitee账号:路由器,欢迎关注获取博客内容源码. 树状数组和其他的高级数据结构不同,它非常的好写,同 ...
- 如何学好C语言--你的学渣朋友告诉你
光说不练假把式,光练不说傻把式,又练又说真把式. 真实感受,不是我不想学,是我真的不知道我哪里不会啊和得怎么做啊?本文作者当初就是这么废掉的 推荐两个练习的网站 (一)C语言网 https://www ...
- LeetCode 700题 题解答案集合 Python
2019.5.12更新至题号796,目前共有265题. 2019.5.26更新至题号72, 目前共有347题. 2019.6.16更新至题号70,目前共有382题. 2019.7.7更新至题号5120 ...
- leetcode题目
<!DOCTYPE html> <html><head><meta charset="utf-8"><title>Lee ...
- python例题求乘客等车时间_python编程例题
return n - 1 # # s = Solution() # print s.numberOfMatches(10) """有一个自行车手打算进行一场公路骑行,这条 ...
- 动态规划(持续更新、整理)
动态规划 记忆化搜索 不同路径:leetcode-62 分割回文串:leetcode-131 单词拆分II:leetcode-140 戳气球:leetcode-312 零钱兑换:leetcode-32 ...
- 【其他】【RQNOJ】生化危机
题目描述 由于边境问题,A.B两国正在进行交火. 最近,A国研制出了一种生化武器,它的的攻击范围是边长n的正方形,假定B国的基地是边长m的正方形 基地样例: ...#.# .#...# ##...# ...
- 星际争霸2免修改器修改绝对一劳永逸
那年那个冬天,那是的我还是个那么纯洁的同学--长话短说,就那个寒假百无聊赖的玩了玩星际争霸2单机模式,然后各种被虐--劳资表示不服,于是开启上帝模式打开游戏安装目录-- 随后将各种模式下的cpu玩家海 ...
- Numpy入门教程:10. 统计相关
背景 什么是 NumPy 呢? NumPy 这个词来源于两个单词 – Numerical和Python.其是一个功能强大的 Python 库,可以帮助程序员轻松地进行数值计算,通常应用于以下场景: 执 ...
最新文章
- 使用reflector对.NET反编译
- 注意!今日起 GitHub 新建存储库的默认分支就不叫“master”了!
- javascript dom节点x
- 湖南计算机股份有限公司hcc-pr2e,PC台式机电脑如何连接使用HCC PR2E/K10打印机
- android 自定义进度条_第一百八十九回:Android中自定义ProgressBar三
- linux top 命令各参数详解
- 评分9.7! 这本Python神作,火爆编程圈!网友:太香!
- weblogic时间问题
- axure rp9是什么软件?如何在Mac中安装使用?
- python re 使用
- Ti的C28x系列的DSP(28069)(28377D)使用经验,CMD文件
- 海康web插件视频播放异常
- windows11桌面删除ie图标
- Amcharts曲线图,简单明了,看完立马就上手
- Angular $injector:unpr Unknown provider 问题原因汇总
- 【Lua-lvgl】3.容器cont
- pycharm软件中去掉竖线的方法
- 浅谈——服务器虚拟化超融合存储
- WebRTC重要API和音视频分析
- 梆梆安全卢佐华:用安全拥抱物联网时代
热门文章
- 计算机与或非异或符号,2.6 与非、或非及异或门(1)
- php 改变页面背景颜色,PHP改变背景颜色
- 手动释放linux缓存——/proc/sys/vm/drop_caches
- Micro LED 巨量转移技术
- PLC基础知识(PLC入门必看)
- 高质量商业计划书的10个写作心得
- OpenGL ES 2.0 系列一
- php allow origin,Allow-Control-Allow-Origin:谷歌跨域扩展插件
- 从0开始的视频特效制作之路
- 电脑版微信多开的三种方法