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. 统计作战单位数相关推荐

  1. LeetCode 1395. 统计作战单位数(蛮力法)

    1. 题目 n 名士兵站成一排.每个士兵都有一个 独一无二 的评分 rating . 每 3 个士兵可以组成一个作战单位,分组规则如下: 从队伍中选出下标分别为 i.j.k 的 3 名士兵,他们的评分 ...

  2. 高级数据结构1—初识树状数组—快速求得前缀和和修改某一元素值

    - 本人的LeetCode账号:魔术师的徒弟,欢迎关注获取每日一题题解,快来一起刷题呀~ 本人Gitee账号:路由器,欢迎关注获取博客内容源码.   树状数组和其他的高级数据结构不同,它非常的好写,同 ...

  3. 如何学好C语言--你的学渣朋友告诉你

    光说不练假把式,光练不说傻把式,又练又说真把式. 真实感受,不是我不想学,是我真的不知道我哪里不会啊和得怎么做啊?本文作者当初就是这么废掉的 推荐两个练习的网站 (一)C语言网 https://www ...

  4. LeetCode 700题 题解答案集合 Python

    2019.5.12更新至题号796,目前共有265题. 2019.5.26更新至题号72, 目前共有347题. 2019.6.16更新至题号70,目前共有382题. 2019.7.7更新至题号5120 ...

  5. leetcode题目

    <!DOCTYPE html> <html><head><meta charset="utf-8"><title>Lee ...

  6. python例题求乘客等车时间_python编程例题

    return n - 1 # # s = Solution() # print s.numberOfMatches(10) """有一个自行车手打算进行一场公路骑行,这条 ...

  7. 动态规划(持续更新、整理)

    动态规划 记忆化搜索 不同路径:leetcode-62 分割回文串:leetcode-131 单词拆分II:leetcode-140 戳气球:leetcode-312 零钱兑换:leetcode-32 ...

  8. 【其他】【RQNOJ】生化危机

    题目描述 由于边境问题,A.B两国正在进行交火. 最近,A国研制出了一种生化武器,它的的攻击范围是边长n的正方形,假定B国的基地是边长m的正方形 基地样例: ...#.# .#...# ##...# ...

  9. 星际争霸2免修改器修改绝对一劳永逸

    那年那个冬天,那是的我还是个那么纯洁的同学--长话短说,就那个寒假百无聊赖的玩了玩星际争霸2单机模式,然后各种被虐--劳资表示不服,于是开启上帝模式打开游戏安装目录-- 随后将各种模式下的cpu玩家海 ...

  10. Numpy入门教程:10. 统计相关

    背景 什么是 NumPy 呢? NumPy 这个词来源于两个单词 – Numerical和Python.其是一个功能强大的 Python 库,可以帮助程序员轻松地进行数值计算,通常应用于以下场景: 执 ...

最新文章

  1. 使用reflector对.NET反编译
  2. 注意!今日起 GitHub 新建存储库的默认分支就不叫“master”了!
  3. javascript dom节点x
  4. 湖南计算机股份有限公司hcc-pr2e,PC台式机电脑如何连接使用HCC PR2E/K10打印机
  5. android 自定义进度条_第一百八十九回:Android中自定义ProgressBar三
  6. linux top 命令各参数详解
  7. 评分9.7! 这本Python神作,火爆编程圈!网友:太香!
  8. weblogic时间问题
  9. axure rp9是什么软件?如何在Mac中安装使用?
  10. python re 使用
  11. Ti的C28x系列的DSP(28069)(28377D)使用经验,CMD文件
  12. 海康web插件视频播放异常
  13. windows11桌面删除ie图标
  14. Amcharts曲线图,简单明了,看完立马就上手
  15. Angular $injector:unpr Unknown provider 问题原因汇总
  16. 【Lua-lvgl】3.容器cont
  17. pycharm软件中去掉竖线的方法
  18. 浅谈——服务器虚拟化超融合存储
  19. WebRTC重要API和音视频分析
  20. 梆梆安全卢佐华:用安全拥抱物联网时代

热门文章

  1. 计算机与或非异或符号,2.6 与非、或非及异或门(1)
  2. php 改变页面背景颜色,PHP改变背景颜色
  3. 手动释放linux缓存——/proc/sys/vm/drop_caches
  4. Micro LED 巨量转移技术
  5. PLC基础知识(PLC入门必看)
  6. 高质量商业计划书的10个写作心得
  7. OpenGL ES 2.0 系列一
  8. php allow origin,Allow-Control-Allow-Origin:谷歌跨域扩展插件
  9. 从0开始的视频特效制作之路
  10. 电脑版微信多开的三种方法