题意:

给出一个由n个数字组成的数组,先让你找出符合下列条件的子集的数量:
  • 每个子集包含的数字个数为m = 3
  • 这三个数字中的最大值减去最小值不超过k = 2

思路:

首先对给出的数组进行排序,现在假设这个数组为\(a\),这个子集为\(\{A_1, A_2, A_3\}\),那么我们每次枚举\(A_1\),用一个指针记录数组中最后一个满足\(a[p] - A_1\)的位置,那么如果\(p\)和\(A_1\)之间元素的个数n再加上1大于等于2,那么答案的总数就加上\(C_n^2\)。
这里有个地方需要注意,由于指针p指向的位置只会越来越靠后,所以p不用每次都从\(A_1\)的位置开始找,只需要从上一次p的位置开始往后找就可以了。我不会说因为这个我T了好几次的

最新文章

  1. 错误提示sudo: no tty present and no askpass program specified Sorry, try again.
  2. Hadoop with tool interface
  3. web性能优化之:no-cache与must-revalidate深入探究
  4. JAVA类与对象(八)-----重写
  5. WCF学习笔记 -- 如何用C#开发一个WebService
  6. 使用canvas制作在线画板
  7. asp.net中ashx文件如何调用session
  8. SqlServer2008 数据库可疑
  9. Hive操作之HQL语句
  10. android浏览器开发小技巧集锦(转)
  11. java 调用JRuby
  12. ios copy和strong,浅拷贝和深拷贝
  13. Tomcat使用shutdown.bat关闭会将其他Tomcat关掉的问题
  14. 指定IP地址进行远程访问服务器设置方法(windows系统)
  15. 通过google cloud API 使用 WaveNet
  16. C#-MVC-Razor视图引擎及解决路径问题的三个方法
  17. linux 文件同步
  18. Hibernate一对多单向关联和双向关联映射方法及其优缺点 (待续)
  19. 恶性循环中的永生bug,可以说是相当写实了
  20. CentOS 6.4 命令行 安装 VMware Tools

热门文章

  1. 【Linux】常用的Linux可插拔认证模块(PAM)应用举例:pam_limits.so、pam_rootok.so和pam_userdb.so模块
  2. 【ASM】查看ASM磁盘组剩余容量和总容量
  3. kubernets之服务资源
  4. P2024 [NOI2001]食物链(种类并查集)
  5. Android 代码规范大全
  6. 一个支付宝小程序在一段时间内只能保留一个 WebSocket 连接
  7. 使用 IPset 进行端口敲门
  8. DP中的树上边/点覆盖问题
  9. 浅谈JavaScript异步编程
  10. 周期性清除Spark Streaming流状态的方法