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

抚州网站开发机构云南建设厅网站职称评定

抚州网站开发机构,云南建设厅网站职称评定,外贸网站建设哪家合适,自己做的网站怎么放视频教程是我在学习动态规划时遇到的一道题。 题目#xff1a; 一共有两种解法#xff1a; 动态规划贪心 二分#xff08;很难理解#xff0c;我还没完全懂。。。#xff09; 解法一#xff1a;动态规划 思路#xff1a; 状态#xff1a;nums的前i个数的最长递增子序列。dp…是我在学习动态规划时遇到的一道题。 题目 一共有两种解法 动态规划贪心 二分很难理解我还没完全懂。。。 解法一动态规划 思路 状态nums的前i个数的最长递增子序列。dp[i] 转移方程依次计算每个状态dp[i]的状态这个状态依赖于前dp[0...i-1]的状态。 如果大于前面的数nums[j] nums[i]则说明有递增现象了。起码nums[j] nums[i]是一对的如果j前面还有子序列那岂不是美哉总之dp[i] dp[j] 1。但是别急万一这个dp[j]小赋值了反而dp[i]就变小了。我们要的是最长的先要比较再确定。 主要是为了防止这种情况【3 4 5 6 0 1 2 7】 比如这个时候7已经和6比完了76所以dp[7]dp[3]1 然后又和0比70如果直接dp[7]dp[4]1那么dp[7]就会变成2了。 最后找到dp里最大的就是我们想要的。 复杂度计算 时间复杂度O(n^2) 空间复杂度O(n) 代码 #include vector //最长递增子序列 //解法一动态规划 //时间复杂度O(n^2) //空间复杂度O(n) class Solution { public:int lengthOfLIS(std::vectorint nums) {//状态就是前i个数最长递增子序列std::vectorint dp(nums.size(), 1);//状态int max_count 1;for (int i 1; i nums.size(); i)//一个一个状态算{//转移方程for (int j 0; j i ; j)//查询前面的数是否小于{if (nums[j] nums[i])//如果大于前面的数则说明有递增{dp[i]std::max(dp[i], dp[j] 1);//有递增也不能直接赋值有可能这个dp[j]小赋值了反而dp[i]就变小了}}max_count max_count dp[i] ? max_count : dp[i];//取最大的dp[i]}return max_count;} };void Test_solution1() {std::vectorint nums{ 1,3,6,7,9,4,10,5,6 };Solution solution;std::coutsolution.lengthOfLIS(nums); } 解法二贪心 二分 思路 二分就是用来查找的。关键是用贪心创建的dp[]是一个单调递增的所以可以二分查找。 很难解释因为我也一知半解。挖个坑 复杂度计算  时间复杂度O(nlogn) 空间复杂度O(n) 代码 #include vector //最长递增子序列 //解法二贪心 二分 //时间复杂度O(nlogn) //空间复杂度O(n) class Solution { public:int lengthOfLIS(std::vectorint nums) {//dp[x]:长度为x的最长递增子序列的最小一个末尾值//举个例子{1,2,3,4,5,6} // 长度为3的最长递增子序列有好几个比如{1,2,3} {3,4,5} {4,5,6}他们有各种末尾值但是最小的一个末尾值是3std::vectorint dp(nums.size(),0);//dp实际有多长len就意味着最长递增子序列有多长dp[0] nums[0];int len 0;//初始化长度为1指着dp第一个数dp[0]for (int i 1; i nums.size(); i){if (nums[i] dp[len]){len;dp[len] nums[i];}else{int j 0, z len;while (j z){int mid (j z) / 2;if (dp[mid] nums[i])j mid 1;else z mid;}dp[j] nums[i];}}//for (const auto x : dp)//{// std::cout x ;//}//std::cout std::endl;return len 1;} };void Test_solution2() {//std::vectorint nums{ 1,3,6,7,9,4,10,5,6 };std::vectorint nums{ 5,6,7,8,9,1,2,3,4 };Solution solution;std::cout solution.lengthOfLIS(nums); }
http://www.sadfv.cn/news/412705/

相关文章:

  • 企业品牌文化建设学习网站做的网站不能放视频
  • 怎么样在网站做产品推广怎么做网络游戏推广
  • 国外ip 网站 百度收录114物流网站怎么做
  • 石狮网站建设哪家好墨刀做网站网页
  • 大连信联科技做的网站怎么样wordpress首页图文轮播
  • 广东网站建设人员网站平台建设模板
  • 谷歌做公司网站需要多少钱wordpress keywords description
  • 英山做网站多少钱有限责任公司是什么企业类型
  • 网站分类目录查询通辽市网站建设
  • 高端企业网站信息wordpress文件上传位置修改
  • 自己做的网站如何上百度今天的三个新闻
  • 网站开发属于商标哪个类别无锡企业网站制作价格
  • 广东品牌网站建设服务机构网站域名实名认证查询
  • 个人网页设计作品psseo关于网站搜索排名
  • 空间商指定的网站目录wordpress自定义后台列表
  • 网站开发对显卡的要求台州律师网站建设
  • 做公司网站建设价格低电商 做图 网站
  • 做签证网站表白网页制作源代码
  • 青岛网站建设方案咨询wordpress绿色主题
  • 企业网站推广公司 知乎移动端cpu天梯图2024
  • 四川建设银行官网招聘网站各大网站ip地址
  • 网站制作建设需求推荐好的网站或网页
  • 大型网站权限设计godaddy绑定wordpress
  • 网站开发参考文献格式软件开发工具包可以卸载吗
  • 网站制作合同注意事项广州做门户网站
  • 怎么做微信网站做网站比较好的软件
  • 网站建设教程在线怎样建设游戏网站
  • 北京网站搭建费用全屋定制设计培训学校哪里有
  • 网站域名注销电话股权分配方案创业初期
  • wap网站为什么没有了wordpress仿制模块