当前位置: 首页 > news >正文

手机网站建设一般要多少钱做简历的网站viso

手机网站建设一般要多少钱,做简历的网站viso,公众号助手,龙港哪里有做百度网站的题目链接 文章目录 1. 思路讲解1.1 dp表的创建1.2 状态转移方程1.3 使用哈希表找到k1.4 初始化1.5 返回值1.6 该题坑爹的一点 2. 代码编写 1. 思路讲解 我们要知道以某个位置为结尾的子序列的数量#xff0c;可以通过它的以上一位置的为结尾的子序列的数量得知#xff0c;也…题目链接 文章目录 1. 思路讲解1.1 dp表的创建1.2 状态转移方程1.3 使用哈希表找到k1.4 初始化1.5 返回值1.6 该题坑爹的一点 2. 代码编写 1. 思路讲解 我们要知道以某个位置为结尾的子序列的数量可以通过它的以上一位置的为结尾的子序列的数量得知也就是说这是一个dp问题。 1.1 dp表的创建 dp问题我们需要创建dp表如果我们单纯使用dp[i]来表示以 i 位置为结尾的子序列的数量是完全不够的。因为我们不知道以 i-1 位置为结尾的等差数列是怎样的它的公差是几我们是不知道的。也就是说我们不确定 i 位置的元素是否能跟到以 i - 1 位置为结尾的数列的后面。 但是如果知道了数列的后两个元素也就是知道了 i - 1 位置以及数列中上一个位置的元素就能知道数列的公差了也就能知道 i 位置的元素是否能跟到后面了所以我们需要用两个元素来表示每个dp位置。 创建二维dp表dp[i][j]表示以 i 位置的元素为数列倒数第二个元素以 j 位置的元素为数列倒数第一个元素为结尾的数列数量有多少。我们人为规定i j 1.2 状态转移方程 nums[j] - nums[i]可以得到公差再由 num[i] - 公差 可以得到上一项的值记为 a我们需要知道这个 a 值在nums中是否存在且是否在 i 位置的前面两个条件都满足才符合题意。 记 a 在nums中的下标为k至于怎么找到这个k下面会说我们要找到以 i 和 j 位置为结尾的等差数列的个数其实找到所有 k 和 i 位置元素结尾的等差数列的个数相加即可a元素在nums中的位置不只一个那么k可能就不只一个。并且也需额外加上一个数列就是 ki j本身所构成的等差数列。 那么状态转移方程就为dp[i][j] dp[k][i] 1 1.3 使用哈希表找到k 我们写代码的时候遍历所有 i 和 j 的组合时间复杂度就已经到达 N^2 了如果此时再在数组中去寻找 k 那么时间复杂度就 N^3了这大概率是会超时的。 我们可以在dp之前使用哈希表去将所有元素数组下标绑定在一起放在哈希表中这样我们得到了 a 之后就可以使用哈希表很快地查找到 k 了。 1.4 初始化 刚开始以 ij 位置为结尾只有两个元素不符合题目中的等差数列可以记为 0 所以我们初始化的时候将dp表中所有的值初始化为 0 即可。又因为vector会默认初始化为0所以我们不用手动初始化了。 1.5 返回值 我们要求的是所有的等差数列所以我们要将所有符合题意的dp[i][j]都加起来然后返回。 1.6 该题坑爹的一点 虽然题目已经说了返回值以及各个元素的值都在int范围内但是我们求a的时候a的值可能会超出int的范围从而出错所以我们将a的类型要设置为long long。然后用a查找k用的是hash所以hash的第一个类型也要为long long。 2. 代码编写 class Solution { public:int numberOfArithmeticSlices(vectorint nums) {int n nums.size();// 创建哈希表便于很快地找到k// 因为k不只一个所以用vector来存储unordered_maplong long, vectorint hash;for (int i 0; i n; i) hash[nums[i]].push_back(i);// 创建二维dp表第一维为数列的倒数第二个元素第二维为数列的倒数第一个元素vectorvectorint dp(n, vectorint(n));int ret 0; // 所有数组的数量// i为nums第0个位置时不管j为几dp[0][j]都为0因为只有两个元素// 所以从第1个位置开始填表即可且i一定不为nums最后一个元素for (int i 1; i n - 1; i){// j从i1开始一直到最后一个位置寻找符合题意的情况for (int j i 1; j n; j){long long a (long long)2*nums[i] - nums[j];if (hash.count(a)) // 看a是否存在于hash中{// 如果存在遍历a对应的vectorfor (auto k : hash[a]){// k需要小于iif (k i) dp[i][j] dp[k][i] 1;}} ret dp[i][j];}}return ret;} };
http://www.tj-hxxt.cn/news/143163.html

相关文章:

  • 一般做网站需要的js有哪些怎样建设网站?(怎样注册域名?如何选择主机?网站应有哪些功能模块
  • 网站建设方案项目书wordpress调用一篇文章
  • 做网站推广需要什么专业长沙品牌网站建设
  • 咸宁网站建设公司电子商务公司图片
  • 网站建设公司计划书校园网站建设er模型
  • 可以做网站的电脑软件大学做网站有哪些
  • 网站设计论文的参考文献网站建设技术app下载
  • 网站特效网濮阳信息港网首页
  • 住房城乡建设部 网站网站开发颜色
  • 泰州专业网站建设公司比wordpress好的工具
  • 崇左北京网站建设如何查询网站的注册信息查询
  • 上海网站建设300二手房出售信息
  • 多说评论插件对网站优化色盲眼中的世界
  • wordpress农业站模板龙岩网站建设运营
  • 如何用付费音乐做视频网站网站基础建设英文
  • 汕头企业网站公司网站建设摘要
  • 建网站好国外最开放的浏览器
  • qt做网站公司注册地址可以跨市变更吗
  • 网站能为智慧城市建设作出什么贡献wordpress建电影网站
  • 万户网站后台控制中心浙江小九天建设集团网站
  • 企业网站开发与设计论文在域名做网站
  • 网站服务器连接被重置搭建小程序多少钱
  • 郑州模板网站设计哪家便宜创业服务网站建设方案项目书
  • 做网站是怎么赢利的金华专业的网站建设
  • 北京建设工程质量协会网站潍坊mip网站建设
  • 免费网站免费蓝海电商怎么做
  • 深圳公司网站建设哪家好wordpress安装下载失败
  • 微信公众号(网站建设)合同黑客钓鱼网站的制作
  • 西安有专业制作网站的公司吗外包app
  • 怎样进入医院公众号谷歌seo搜索引擎下载