2022-2-17 Leetcode 1498. 满足条件的子序列数目
做题的思路:
- 为什么要排序?
由于是选取子序列,没有要求一定要连续,所以先排好序。 - 如何计算区间 [ 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. 满足条件的子序列数目相关推荐
- LeetCode 1498. 满足条件的子序列数目(排序+二分查找+快速幂)
1. 题目 给你一个整数数组 nums 和一个整数 target . 请你统计并返回 nums 中能满足其最小元素与最大元素的 和 小于或等于 target 的 非空 子序列的数目. 由于答案可能很大 ...
- 微软发布 Visual Studio 2022 版本 17.3:支持.NET MAUI 正式版,提高 C++ 性能
微软今天发布了 Visual Studio 2022 版本 17.3.此更新带来了对 .NET 多平台应用程序 UI (.NET MAUI) 支持.为 Microsoft Teams 开发应用程序的能 ...
- 2022.3.17 关于镜头标称焦距和相机标定的焦距的差异
2022.3.17 关于镜头标称焦距和相机标定的焦距的差异 来源 https://jah10527.github.io/articles/about_focol_length.html 有些日子没聊点 ...
- 用VScode编写LaTex-最新教程2022/4/17
2022/4/17日更新内容 新版vscode对于原来的配置,反向搜索失效 更新代码. vscode需要修改或添加的配置 "latex-workshop.view.pdf.viewer&qu ...
- 2022年湖北助理工程师职称评定条件及流程是什么呢?助理作用是什么? 甘建二
2022年湖北助理工程师职称评定条件及流程是什么呢?助理作用是什么? 现在全国统一的助理(助理)工程师是由人社部颁发的助理工程师证也就是大家说的初级职称.人社部备案,正规可靠,全国通用,评审表.红头文 ...
- 时间管理(李葆春教授,2022.8.17)
Source: weibo Time: 2022.8.17 18:02 几个月前,有个朋友曾经提到回头会在微博上问我一个有关「时间管理」的问题.直到现在这个问题也没有等来,我想要不然先聊起来,等问题来 ...
- gnome桌面打造日常使用操作系统(支持Arch Linux、Fedora、Ubuntu)(2022.04.17更新)
更新日志 日期 内容 2022.04.03 完成初稿 2022.04.05 更新sublime和imwheel 2022.04.06 添加所有软件在Feroda的安装方法 2022.04.07 添加所 ...
- 2022第17届中国重庆橡塑工业展览会|成都橡塑展
2022第17届中国重庆橡塑工业展览会 The 17th China Chongqing Rubber, Plastics Industry Exhibition 2022年6月16-18日 ...
- Leetcode 334.递增的三元子序列
原题链接: Leetcode 334.递增的三元子序列 Given an integer array nums, return true if there exists a triple of ind ...
最新文章
- 华为为什么要“囤”700名数学家?中科院院士告诉你!
- linux docker中gdb调试断点不停
- spring中AnnotationUtils的设计
- yum安装mysql及启动_linux下使用yum安装mysql以及启动、登录和远程访问
- 软件测试用例_通用测试用例执行软件
- python打开哪个答案_关于 Python 文件的 ‘r’ 打开模式,哪个选项的描述是正确的?_学小易找答案...
- 【软件工程】抽象泄漏
- swoole php input,介绍swoole异步群发模板消息
- (转 )Unity对Lua的编辑器拓展
- 【【模板】严格次小生成树[BJWC2010]】
- 实用!使用Mac内置功能一键转换繁体与简体中文
- 爬虫的一些知识点 目录 1. 网络爬虫	1 2. 产生背景 垂直领域搜索引擎	2 3. 1 聚焦爬虫工作原理以及关键技术概述	3 4. 涉及技术	3 4.1. 下载网页 一般是通过net api
- LabVIEW编程基础:条件结构编程
- 黑苹果E430c, 安装过程
- 计算机组成原理——计算机的运算方法
- PHP文件上传接口(带参数)
- 超美二次元响应引导页源码
- 「会员卡管理系统」 · Java Swing + MySQL JDBC开发
- java毕业设计家居体验平台的设计与实现Mybatis+系统+数据库+调试部署
- 计算机辅助造型软件,AutoCAD 2010 专业的大型计算机辅助设计软件
热门文章
- dp主机_一键证件复印 东芝DP-2523A优惠价2500-东芝 DP-2523A_成都复印机行情
- 分享多个基于QML/Opengles的炫彩效果
- DeepMind提出关系RNN:构建关系推理模块,强化学习利器
- 层次分析法在gis方面评价方法
- 在线驾考 HTML5,驾考科目一app哪个好_预约科目一考试app_科目一练题哪个软件好...
- 鸿蒙和yunso区别,华为没消息反而多家媒体之间相互作为依据报道,鸿蒙OS到底几家真?...
- 营收大涨352.7%,优信终迎“第二春”
- 免费下载无水印抖音视频
- 时光计算 已知天数算日期
- 北京内推 | 联想研究院招聘计算机视觉算法实习生