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

阜阳市城乡建设局网站vc域名建站的网站

阜阳市城乡建设局网站,vc域名建站的网站,徐州市鼓楼区建设局网站,福永镇网站建设代码随想录第五十三天 Leetcode 1143. 最长公共子序列Leetcode 1035. 不相交的线Leetcode 53. 最大子数组和 Leetcode 1143. 最长公共子序列 题目链接: 最长公共子序列 自己的思路:没想出来#xff01;#xff01;#xff01; 正确思路:首先这道题由于是涉及到了两个数组 正确思路:首先这道题由于是涉及到了两个数组或字符串所以我们要使用二维dp数组来表示动规五部曲1、dp数组的含义dp[i][j]表示以text1[i-1]和text2[j-1]结尾的最长公共子序列的长度这里为什么是i-1和j-1前面一些题解已经解释了2、递推公式dp[i][j]是和三个数组有关系的分别是dp[i-1][j-1]、dp[i][j-1]和dp[i-1][j]这里就要分情况了因为我们要判断当前的元素要不要归到最长公共子序列里面去所以要判断text1[i-1]和text2[j-1]是否相等如果相等的话就要在dp[i-1][j-1]基础上加1如果不相等的话就要对另外两个求最大值因为我们的dp[i][j]其实是可以和dp[i][j-1]有关的我们可以忽略掉text[i-1]这个元素因为现在text1[i-1]和text2[j-1]并不相等另一个也是如此3、dp数组的初始化这里还是和之前那道题一样全部初始化为0解释看之前的题4、遍历顺序由于dp[i][j]是由前面的数来决定的所以我们是从前向后遍历5、打印dp数组主要用于debug 代码: class Solution {public int longestCommonSubsequence(String text1, String text2) {//转数组方便操作char[] c1 text1.toCharArray();char[] c2 text2.toCharArray();int m text1.length();int n text2.length();int[][] dp new int[m1][n1];for (int i 1;im;i){for (int j 1;jn;j){//递推公式if (c1[i-1]c2[j-1]){dp[i][j] dp[i-1][j-1] 1;}else{dp[i][j] Math.max(dp[i-1][j],dp[i][j-1]);}}}return dp[m][n];} }Leetcode 1035. 不相交的线 题目链接: 不相交的线 自己的思路:和上一个题一模一样 正确思路: 代码: class Solution {public int maxUncrossedLines(int[] nums1, int[] nums2) {int m nums1.length;int n nums2.length;int[][] dp new int[m1][n1];for (int i1;im;i){for (int j 1;jn;j){//递推公式if (nums1[i-1]nums2[j-1]){dp[i][j] dp[i-1][j-1]1;}else{dp[i][j] Math.max(dp[i-1][j],dp[i][j-1]);}}}return dp[m][n];} }Leetcode 53. 最大子数组和 题目链接: 最大子数组和 自己的思路:贪心我们只在sum大于0的时候给他继续向后加因为如果小于等于0的话再向后加是没有意义的只会削弱后的数 代码: class Solution {public int maxSubArray(int[] nums) {int sum 0;int maxvalue Integer.MIN_VALUE;for (int i0;inums.length;i){//如果sum大于0才有意义if (sum0){sum nums[i];}else{sum nums[i];}//更新最大值maxvalue Math.max(sum,maxvalue);}return maxvalue;} }其他思路:动态规划直接动规五部曲1、dp数组的含义以nums[i]结尾的最大子序列的和2、递推公式主要分析dp[i]和哪些元素有关系他可能在dp[i-1]的基础上加上当前元素也可能直接放弃掉之前的累加和直接令dp[i]nums[i]所以要在两者中取较大者3、dp数组初始化这里其实只将dp[0]初始化为nums[0]即可但是因为后面dp[i]的递推公式有一个和nums[i]比较的我们改成对dp[i]进行比较所以最开始初始化的时候直接令dpnums即可4、遍历顺序由于后面的状态依赖前面的状态所以我们采用从前向后遍历的方式5、打印dp数组主要用于debug 代码: class Solution {public int maxSubArray(int[] nums) {int[] dp nums;int maxval nums[0];for (int i 1;inums.length;i){//递推公式dp[i] Math.max(dp[i-1]nums[i],dp[i]);maxval Math.max(maxval,dp[i]);}return maxval;} }
http://www.w-s-a.com/news/707616/

相关文章:

  • 建筑学不会画画影响大吗电子商务沙盘seo关键词
  • 重庆网站建设找承越上海建设工程招投标网
  • 网站建设四个步骤下单的网站建设教程
  • 网站建设合同的验收表响应式网站建设哪家好
  • 手机网站建设视频长沙百家号seo
  • 网站未备案怎么访问网站开发前端需要学什么
  • 正黄集团博弘建设官方网站wordpress设置固定链接和伪静态
  • wordpress 建网站视频如何实现网站生成网页
  • 杭州品牌网站建设推广个人的网站建设目标
  • 济南有哪些网站是做家具团购的贸易公司自建免费网站
  • wap网站psd成立公司在什么网站
  • 网站建设婚恋交友聊城网站建设费用
  • 沈阳网站建设联系方式尉氏县金星网架公司
  • 医院网站建设实施方案基础微网站开发信息
  • 网站建设开发服务费记账百度指数搜索
  • 网站建设备案流程windows优化大师有必要安装吗
  • 怎么网站定制自己做网站卖视频
  • 网站开发二线城市网站制作过程中碰到的问题
  • 最好网站建设公司制作平台小程序开发教程资料
  • 陕西省高速建设集团公司网站国内做会展比较好的公司
  • 建设学校网站的原因网页设计实训报告1500
  • 网站建设客户来源江门网站设计华企立方
  • 自己如何做棋牌网站宁波网络推广优化方案
  • 深圳招聘网站推荐seo网站推广方案
  • 彩票网站开发 合法学术会议网站建设
  • 商务网站建设论文答辩pptseo技术博客
  • 怎样才能有自己的网站桂林搭建公司
  • 哪个网站做视频赚钱万科
  • 莆系医疗网站建设wp如何做网站地图
  • 网站建设应急处置方案团购网站 备案问题