做题的思路:

  • 为什么要排序?
    由于是选取子序列,没有要求一定要连续,所以先排好序。
  • 如何计算区间 [ i , j ] 的总数?
    其实除了最大的数字 nums[j] 和最小的数字 nums[i] 起到计算的作用,其他的都只是参与填充的可选项。
    一共有 2 ^ ( j - i ) 种,计算方法

    • 真正起作用的 : nums[i] + nums[i] 和 nums[i] + nums[j],一共有两种
    • 作为组合的可选项:中间 ( j - i - 1 ) 个数字,在子串可有可无,一共有 2 ^ ( j - i - 1 ) 种选择方法。
  • 如何选取区间?
    真正的计算只由 nums[i] 和 nums[j] 决定,找到 符合 nums[i] + nums[j] <= target 条件的组合就可以啦。
    需要推进的话先移动 i ,不行就调整 j ,直到 i > j
    int numSubseq(vector<int>& nums, int target) {int mod = 1e9 + 7;sort(nums.begin(), nums.end());//所求为子序列,通过排序来比较int n = nums.size(), res = 0;vector<int>pw(n,0);pw[0] = 1;for (int i = 1; i < n; i++){pw[i] = (pw[i - 1] * 2) % mod;}//求二的幂//如果找到的子序列为[i,j],那么有 2^(j-i)种方法//为什么是上面这种计算的方式?//因为是两种:nums[i]+nums[j] 和 nums[i]+nums[i]//其他中间的(j-i-1)个数字可以要也可以不要,有2^(j-i-1)中选取方法for (int i = 0, j = n - 1; i < n; i++){while (i <= j && nums[i] + nums[j] > target) j--;//如果不行,j向右移动if (i > j) break;res = (res + pw[j - i]) % mod;//固定住底下一位,最多就p[j-i]种,//比如 i=1 j =2,就两种情况 一是nums[i],二是nums[i]和nums[j] ,所以是pw[j-i]}return res;}

2022-2-17 Leetcode 1498. 满足条件的子序列数目相关推荐

  1. LeetCode 1498. 满足条件的子序列数目(排序+二分查找+快速幂)

    1. 题目 给你一个整数数组 nums 和一个整数 target . 请你统计并返回 nums 中能满足其最小元素与最大元素的 和 小于或等于 target 的 非空 子序列的数目. 由于答案可能很大 ...

  2. 微软发布 Visual Studio 2022 版本 17.3:支持.NET MAUI 正式版,提高 C++ 性能

    微软今天发布了 Visual Studio 2022 版本 17.3.此更新带来了对 .NET 多平台应用程序 UI (.NET MAUI) 支持.为 Microsoft Teams 开发应用程序的能 ...

  3. 2022.3.17 关于镜头标称焦距和相机标定的焦距的差异

    2022.3.17 关于镜头标称焦距和相机标定的焦距的差异 来源 https://jah10527.github.io/articles/about_focol_length.html 有些日子没聊点 ...

  4. 用VScode编写LaTex-最新教程2022/4/17

    2022/4/17日更新内容 新版vscode对于原来的配置,反向搜索失效 更新代码. vscode需要修改或添加的配置 "latex-workshop.view.pdf.viewer&qu ...

  5. 2022年湖北助理工程师职称评定条件及流程是什么呢?助理作用是什么? 甘建二

    2022年湖北助理工程师职称评定条件及流程是什么呢?助理作用是什么? 现在全国统一的助理(助理)工程师是由人社部颁发的助理工程师证也就是大家说的初级职称.人社部备案,正规可靠,全国通用,评审表.红头文 ...

  6. 时间管理(李葆春教授,2022.8.17)

    Source: weibo Time: 2022.8.17 18:02 几个月前,有个朋友曾经提到回头会在微博上问我一个有关「时间管理」的问题.直到现在这个问题也没有等来,我想要不然先聊起来,等问题来 ...

  7. gnome桌面打造日常使用操作系统(支持Arch Linux、Fedora、Ubuntu)(2022.04.17更新)

    更新日志 日期 内容 2022.04.03 完成初稿 2022.04.05 更新sublime和imwheel 2022.04.06 添加所有软件在Feroda的安装方法 2022.04.07 添加所 ...

  8. 2022第17届中国重庆橡塑工业展览会|成都橡塑展

    2022第17届中国重庆橡塑工业展览会 The 17th China Chongqing Rubber, Plastics Industry Exhibition 2022年6月16-18日     ...

  9. Leetcode 334.递增的三元子序列

    原题链接: Leetcode 334.递增的三元子序列 Given an integer array nums, return true if there exists a triple of ind ...

最新文章

  1. 华为为什么要“囤”700名数学家?中科院院士告诉你!
  2. linux docker中gdb调试断点不停
  3. spring中AnnotationUtils的设计
  4. yum安装mysql及启动_linux下使用yum安装mysql以及启动、登录和远程访问
  5. 软件测试用例_通用测试用例执行软件
  6. python打开哪个答案_关于 Python 文件的 ‘r’ 打开模式,哪个选项的描述是正确的?_学小易找答案...
  7. 【软件工程】抽象泄漏
  8. swoole php input,介绍swoole异步群发模板消息
  9. (转 )Unity对Lua的编辑器拓展
  10. 【【模板】严格次小生成树[BJWC2010]】
  11. 实用!使用Mac内置功能一键转换繁体与简体中文
  12. 爬虫的一些知识点 目录 1. 网络爬虫 1 2. 产生背景 垂直领域搜索引擎 2 3. 1 聚焦爬虫工作原理以及关键技术概述 3 4. 涉及技术 3 4.1. 下载网页 一般是通过net api
  13. LabVIEW编程基础:条件结构编程
  14. 黑苹果E430c, 安装过程
  15. 计算机组成原理——计算机的运算方法
  16. PHP文件上传接口(带参数)
  17. 超美二次元响应引导页源码
  18. 「会员卡管理系统」 · Java Swing + MySQL JDBC开发
  19. java毕业设计家居体验平台的设计与实现Mybatis+系统+数据库+调试部署
  20. 计算机辅助造型软件,AutoCAD 2010 专业的大型计算机辅助设计软件

热门文章

  1. dp主机_一键证件复印 东芝DP-2523A优惠价2500-东芝 DP-2523A_成都复印机行情
  2. 分享多个基于QML/Opengles的炫彩效果
  3. DeepMind提出关系RNN:构建关系推理模块,强化学习利器
  4. 层次分析法在gis方面评价方法
  5. 在线驾考 HTML5,驾考科目一app哪个好_预约科目一考试app_科目一练题哪个软件好...
  6. 鸿蒙和yunso区别,华为没消息反而多家媒体之间相互作为依据报道,鸿蒙OS到底几家真?...
  7. 营收大涨352.7%,优信终迎“第二春”
  8. 免费下载无水印抖音视频
  9. 时光计算 已知天数算日期
  10. 北京内推 | 联想研究院招聘计算机视觉算法实习生