题意:寻找子数组的和最大。

思路:设置dp数组来保存到第i位的最大和。

判断第i-1位的正负,若dp[i-1]<0 则 dp[i] = nums[i]; 若 dp[i-1] > 0 则 dp[i] = dp[i-1] +nums[i];

最后用 max_num = max(max_num, dp[i]); 来存储最大的和。

class Solution {
public:int maxSubArray(vector<int>& nums) {int len = nums.size();if(len == 0) return 0;if(len == 1) return nums[0];vector<int> dp(len, 0);  //dp[i]: 以第i个元素为结尾的最大子序列和dp[0] = nums[0];int max_num = dp[0];for(int i=1; i<len; i++){if(dp[i-1] > 0)dp[i] = dp[i-1] +nums[i];elsedp[i] = nums[i];}return max_num;}
};

题意:求子数组(数组里的数是连续)的最大乘积。

思路:因为数组里有负号,所以用两个数组dp_max 和 dp_min 分别保存到当前位置i的最大值和最小值。

状态转移方程:

dp_max[i%2] = max( max(dp_max[(i-1)%2]*nums[i], nums[i]), dp_min[(i-1)%2]*nums[i]);
dp_min[i%2] = min(min(dp_min[(i-1)%2]*nums[i], nums[i]), dp_max[(i-1)%2]*nums[i]);

class Solution {
public:int maxProduct(vector<int>& nums) {int n = nums.size();if(n==0) return 0;int dp_max[2]={nums[0], 0}, dp_min[2]={nums[0], 0} ;int ans = nums[0];for(int i=1; i<n; i++){dp_max[i%2] = max( max(dp_max[(i-1)%2]*nums[i], nums[i]), dp_min[(i-1)%2]*nums[i]);dp_min[i%2] = min(min(dp_min[(i-1)%2]*nums[i], nums[i]), dp_max[(i-1)%2]*nums[i]);ans = max(ans, dp_max[i%2]);}return ans;}
};

266. Palindrome Permutation 回文全排列

Given a string, determine if a permutation of the string could form a palindrome.

Example 1:

Input: "code"
Output: false

Example 2:

Input: "aab"
Output: true

Example 3:

Input: "carerac"
Output: true

Hint:

  1. Consider the palindromes of odd vs even length. What difference do you notice?
  2. Count the frequency of each character.
  3. If each character occurs even number of times, then it must be a palindrome. How about character which occurs odd number of times?

转载于:https://www.cnblogs.com/Bella2017/p/10957868.html

动态规划 53:Maximum Subarray,152:Maximum Subarray,266. Palindrome Permutation 回文全排列...相关推荐

  1. 266. Palindrome Permutation

    /**266. Palindrome Permutation*2016-6-24 by Mingyang *这个题目很简单的是HashSet来做,遇到一样的,就remove,从没出现的就Add*/pu ...

  2. 【字符串】最长回文子串 ( 动态规划算法 ) ★

    文章目录 一.回文串.子串.子序列 二.最长回文子串 1.动态规划算法 2.动态规划算法代码示例 一.回文串.子串.子序列 " 回文串 ( Palindrome ) " 是 正反都 ...

  3. LeetCode 152. Maximum Product Subarray

    152. Maximum Product Subarray Find the contiguous subarray within an array (containing at least one ...

  4. arry-718 Maximum Length of Repeated Subarray

    题目:Input: A: [1,2,3,2,1] B: [3,2,1,4,7] Output: 3 Explanation: The repeated subarray with maximum le ...

  5. 求两个数组的最长重复子数组 Maximum Length of Repeated Subarray

    为什么80%的码农都做不了架构师?>>>    问题: Given two integer arrays A and B, return the maximum length of ...

  6. 动态规划求一个序列的最长回文子序列(Longest Palindromic Substring )

    1.问题描述 给定一个字符串(序列),求该序列的最长的回文子序列. 2.分析 需要理解的几个概念: ---回文 ---子序列 ---子串 http://www.cnblogs.com/LCCRNblo ...

  7. bzoj 4044 Virus synthesis - 回文自动机 - 动态规划

    题目传送门 需要高级权限的传送门 题目大意 要求用两种操作拼出一个长度为$n$的只包含'A','T','G','C'的字符串 在当前字符串头或字符串结尾添加一个字符 将当前字符串复制,将复制的串翻转, ...

  8. 动态数组怎么定义_动态规划最长回文子序列

    动态规划|最长回文子序列 今天一起来学习Leetcode第 516 题:最长回文子序列. 题目描述 题目分析 首先回文字符串指的是形如"a","aa",''ab ...

  9. 算法62---最长回文子序列长度(子串)、回文子序列总共个数(子串)【动态规划】...

    参考链接:https://www.cnblogs.com/AndyJee/p/4465696.html 一.题目:最长回文子序列长度 给定字符串,求它的最长回文子序列长度.回文子序列反转字符顺序后仍然 ...

最新文章

  1. 安卓后端mysql_后端Spring Boot+前端Android交互+MySQL增删查改(Java+Kotlin实现)
  2. 由获取子元素的方法find和children所获
  3. 1215.1——动态分配内存的补充realloc
  4. 002服务提供者Eureka
  5. 催收 重新分案_贷后风险管理(催收)模型框架搭建
  6. 静态路由的设置以及缺省路由的发布
  7. JavaScript闭包
  8. 前端常用标签与注意事项
  9. 最小熵原理(四):“物以类聚”之从图书馆到词向量
  10. Flutter高仿微信-第47篇-群聊-语音
  11. 北斗和GPS定位在室外非常好用,但当手机进入室内时,它们的定位功能就很不准,甚至无法定位。我们可以开启WLAN扫描定位WIFI模块固定编码或者开启手机的A-GPS辅助定位通过基站,A-GPS服务器定位
  12. 【操作系统⑧】——信号量与PV操作(下)【哲学家进餐问题 AND型信号量 信号量集机制】
  13. C++高级搜索算法迭代加深—————骑士精神
  14. 使用gulp为项目中的文件自动添加版本号之实践思路
  15. AC最佳防守——一些头疼的错误
  16. 模拟银行账户功能java_用JAVA语言编写程序,模拟银行账户功能。要有..._银行招聘考试_帮考网...
  17. POJ-3208 Apocalypse Someday (数位DP)
  18. CAD看图软件哪个好?最好用的CAD看图软件推荐
  19. ppt里面怎么打破折号
  20. java实验Java面向对象编程_Java实验项目 面向对象编程.doc

热门文章

  1. Android 4.1最终版SDK和ADT Plugin全线发布
  2. Android开发三:常用控件1--TextView、EditText、Button
  3. Android 7.1.1 去感叹号
  4. 服务 进程守护 MarsDaemon 简介
  5. ipcs, ipcrm
  6. Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.ClassVisitor
  7. WebDriver 小毛笔记(二)准备工作
  8. 【mongoDB】 备份
  9. Unable to resolve target 'android-5'
  10. Android 极光推送设置别名