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

医疗网站建设咨询科目一速成网站建设

医疗网站建设咨询,科目一速成网站建设,有没有免费的直播视频下载,网站dns查询目录 最长递增子序列 摆动序列 最长递增子序列的个数 最长数对链 最长定差子序列 最长的斐波那契子序列的长度 最长等差数列 等差数列划分 II - 子序列 最长递增子序列 300. 最长递增子序列 子数组是连续的#xff0c;子序列可以不连续#xff0c;那么就要去[0, i - 1]…目录 最长递增子序列  摆动序列 最长递增子序列的个数 最长数对链 最长定差子序列 最长的斐波那契子序列的长度 最长等差数列 等差数列划分 II - 子序列  最长递增子序列  300. 最长递增子序列 子数组是连续的子序列可以不连续那么就要去[0, i - 1] 区间找 参考代码 class Solution { public:int lengthOfLIS(vectorint nums) {int n nums.size();vectorint dp(n, 1);int ret 1;for(int i 1; i n; i){for(int j 0; j i; j){if(nums[i] nums[j])dp[i] max(dp[i], dp[j] 1);}ret max(ret, dp[i]);}return ret;} }; 摆动序列 376. 摆动序列 错误 g[i] max(g[i], f[j] 1);这个地方写错成f[i]导致逻辑错误 参考代码 class Solution { public:int wiggleMaxLength(vectorint nums) {int n nums.size();vectorint f(n, 1), g(n, 1);int ret 1;for(int i 1; i n; i){for(int j 0; j i; j){if(nums[j] nums[i]) f[i] max(f[i], g[j] 1);else if(nums[j] nums[i]) g[i] max(g[i], f[j] 1);}ret max(ret, max(f[i], g[i]));}return ret;} }; 最长递增子序列的个数 673. 最长递增子序列的个数 ☆☆☆☆☆ 逻辑其实差不多我们需要用len来更新count如果只表示一个count的话没有len没法更新count只有在nums[j] nums[i] 的时候才能操作这是递增的基本条件然后通过长度来更新大于自然要重置等于则延续count[j]通过for j 循环找出 i 位置为结尾的最长长度和最大个数 参考代码 class Solution { public:int findNumberOfLIS(vectorint nums) {int n nums.size();vectorint len(n, 1), count(n, 1);int maxlen 1, retcount 1;for(int i 1; i n; i){for(int j 0; j i; j){if(nums[j] nums[i]){if(len[j] 1 len[i]) count[i] count[j];else if(len[j] 1 len[i])len[i] len[j] 1, count[i] count[j];}}if(len[i] maxlen)maxlen len[i], retcount count[i];else if(len[i] maxlen)retcount count[i];}return retcount;} }; 最长数对链 646. 最长数对链 去[0,  i - 1] 里面找符合条件的再比较 参考代码 class Solution { public:int findLongestChain(vectorvectorint pairs) {int n pairs.size();sort(pairs.begin(), pairs.end());vectorint dp(n, 1);int ret 1;for(int i 1; i n; i){for(int j 0; j i; j){if(pairs[j][1] pairs[i][0])dp[i] max(dp[i], dp[j] 1);}ret max(ret, dp[i]);}return ret;} }; 最长定差子序列 1218. 最长定差子序列 最开始老样子n方但是发现超时 class Solution5_1 { public:int longestSubsequence(vectorint arr, int difference) {int n arr.size();vectorint dp(n, 1);int ret 1;for (int i 1; i n; i){for (int j 0; j i; j){if (arr[j] difference arr[i]) dp[i] max(dp[i], dp[j] 1);}ret max(ret, dp[i]);}return ret;} }; 然后发现只要找最后一个倒找找到最后一个满足差值的就行后面才发现如果一个数据很长而且都满足条件的很少那么这个时候优化就没有用了 class Solution5_2 { public:int longestSubsequence(vectorint arr, int difference) {int n arr.size();vectorint dp(n, 1);int ret 1;for (int i 1; i n; i){for (int j i - 1; j 0; j--){if (arr[j] difference arr[i]){dp[i] dp[j] 1;break;}}ret max(ret, dp[i]);}return ret;} }; 所以我们采用hash元素, 满足条件的个数来映射 参考代码 class Solution { public:int longestSubsequence(vectorint arr, int difference) {unordered_mapint, int hash;int n arr.size(), ret 1;hash[arr[0]] 1;for(int i 1; i n; i){hash[arr[i]] hash[arr[i] - difference] 1;ret max(ret, hash[arr[i]]);}return ret;} }; 最长的斐波那契子序列的长度 873. 最长的斐波那契子序列的长度 如果是一维的状态表示以i位置为结尾的最长斐波那契序列的长度那么它的更新条件就要前面两个数又要遍历两遍但也不对没法通过前面的状态来改变当前位置的状态 所以用结尾两个位置来锁定这个斐波那契序列自然就是二维dp 且是严格递增hash可以直接全写出来(也可以一步一步定义)且是int , int 每个元素只有一个对应的下标 注意最后一步 oj题没有这时候只会报错 参考代码 class Solution { public:int lenLongestFibSubseq(vectorint arr) {int n arr.size();vectorvectorint dp(n, vectorint(n, 2));unordered_mapint, int hash;for(int i 0; i n; i)hash[arr[i]] i;int ret 2;for(int j 2; j n; j){for(int i 1; i j; i){int num arr[j] - arr[i];if(hash.count(num) hash[num] i)dp[i][j] dp[hash[num]][i] 1;ret max(ret, dp[i][j]);}}return ret 3 ? 0 : ret;} }; 一步步定义参考代码  class Solution { public:int lenLongestFibSubseq(vectorint arr) {int n arr.size();vectorvectorint dp(n, vectorint(n, 2));unordered_mapint, int hash;// for(int i 0; i n; i)// hash[arr[i]] i;hash[arr[0]] 0;int ret 2;for (int i 1; i n - 1; i){for (int j i 1; j n; j){int num arr[j] - arr[i];if (hash.count(num) hash[num] i)dp[i][j] dp[hash[num]][i] 1;ret max(ret, dp[i][j]);}hash[arr[i]] i;}return ret 3 ? 0 : ret;} }; 最长等差数列 1027. 最长等差数列 以为我们需要元素对应的下标所以用哈希表 第二这题并不是严格递增那就是很可能会有相同的数如果一次定义完哈希值那么相同元素的下标就会用后面的那个但是也可以定义为int, vectorint 其三每一次的 i  j 结尾都是不同的所以ret必须要放在第二层循环里 注意 ret 2, 题目是length 2 且两个数也被认为是构成等差数列 代码如下 class Solution { public:int longestArithSeqLength(vectorint nums) {int n nums.size();vectorvectorint dp(n, vectorint(n, 2));int ret 2;unordered_mapint, vectorint hash;for(int i 0; i n; i)hash[nums[i]].push_back(i);for(int j 2; j n; j){for(int i 1; i j; i){int num 2 * nums[i] - nums[j];// if(hash.count(num) hash[num] i)//不能这么写了因为hash[num]是vectorintif(hash.count(num))for(auto e : hash[num])if(e i)dp[i][j] max(dp[i][j], dp[e][i] 1);ret max(ret, dp[i][j]);}}return ret;} }; 和 - 最长定差子序列 想法类似num只要找最接近 i 的就行,可以理解为覆盖掉原来的距离 i 较远元素的下标 参考代码 class Solution { public:int longestArithSeqLength(vectorint nums) {int n nums.size();vectorvectorint dp(n, vectorint(n, 2));int ret 2;unordered_mapint, int hash;hash[nums[0]] 0;for(int i 1; i n - 1; i){for(int j i 1; j n; j){int num 2 * nums[i] - nums[j];if(hash.count(num) hash[num] i)dp[i][j] dp[hash[num]][i] 1;ret max(ret, dp[i][j]);}hash[nums[i]] i;}return ret;} }; 等差数列划分 II - 子序列  446. 等差数列划分 II - 子序列 思路 题目求的是个数那么dp表要初始化成0既然是子序列  个数 那么就是满足条件的所有下标e这里不能覆盖下标要找到所有下标所以hash是int 和vectorint 对应, 两个i  j   for的顺序只对覆盖hash有影响作用 参考代码 class Solution { public:int numberOfArithmeticSlices(vectorint nums) {int n nums.size();vectorvectorint dp(n, vectorint(n));unordered_maplong long, vectorint hash;for(int i 0; i n; i)hash[nums[i]].push_back(i);int ret 0;for(int i 1; i n - 1; i){for(int j i 1; j n; j){long long num (long long)2 * nums[i] - nums[j];if(hash.count(num))for(auto e : hash[num])if(e i)dp[i][j] dp[e][i] 1;ret dp[i][j];}}return ret;} };
http://www.pierceye.com/news/473314/

相关文章:

  • 天凡建设股份有限公司网站苍山网站建设
  • 如何新建网站dw线下推广的渠道和方法
  • 网站友链wordpress火车头发布
  • 青海网站维护公司自己的网站叫什么
  • 微网站 淘宝客wordpress备案号放置
  • html5 手机网站 模版网站信息员队伍建设
  • 基金会网站开发方案政务公开网站建设重点
  • 影视网站制作网页游戏的软件
  • 企业做网站的费用如何科目青色网站欣赏
  • 做视频网站怎么赚钱的网站开发流程的三个部分
  • 牡丹江市建设行业协会网站广西住房城乡建设厅网站首页
  • 重庆网站关键词排名优化免费网页代理的推荐
  • 定制型网站怎么做重庆软件开发公司有哪些
  • 自适应型网站建设网站建设搭建是什么意思
  • 网站建设能够不同地方网址大全12345
  • 做网批那个网站好校园网站界面建设
  • 免费网站建设php济南网站建设公司官网
  • 徐汇网站推广网络营销的四个特点
  • 简易做网站wordpress插件tag
  • 红酒 公司 网站建设青岛安装建设股份公司网站
  • 小米路由hd 做网站营销型网站策划 建设的考试题
  • 运河网站制作自主建站平台
  • 万网 网站建设合同最好的网站开发语言
  • 网站备案密码收不到典当 网站
  • 东莞网站建设推广服务网站建设开票单位
  • 贵港公司做网站东莞凤岗企业网站建设推广
  • 网站制作过程中碰到的问题微信怎么做链接推广产品
  • 做网站留后门是怎么回事视频网站开发需求分析
  • 关于做网站的了解点电子商务应用平台包括哪些
  • 垂直门户网站都有什么网站首页index.html