动态规划 53:Maximum Subarray,152:Maximum Subarray,266. Palindrome Permutation 回文全排列...
题意:寻找子数组的和最大。
思路:设置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:
- Consider the palindromes of odd vs even length. What difference do you notice?
- Count the frequency of each character.
- 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 回文全排列...相关推荐
- 266. Palindrome Permutation
/**266. Palindrome Permutation*2016-6-24 by Mingyang *这个题目很简单的是HashSet来做,遇到一样的,就remove,从没出现的就Add*/pu ...
- 【字符串】最长回文子串 ( 动态规划算法 ) ★
文章目录 一.回文串.子串.子序列 二.最长回文子串 1.动态规划算法 2.动态规划算法代码示例 一.回文串.子串.子序列 " 回文串 ( Palindrome ) " 是 正反都 ...
- LeetCode 152. Maximum Product Subarray
152. Maximum Product Subarray Find the contiguous subarray within an array (containing at least one ...
- 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 ...
- 求两个数组的最长重复子数组 Maximum Length of Repeated Subarray
为什么80%的码农都做不了架构师?>>> 问题: Given two integer arrays A and B, return the maximum length of ...
- 动态规划求一个序列的最长回文子序列(Longest Palindromic Substring )
1.问题描述 给定一个字符串(序列),求该序列的最长的回文子序列. 2.分析 需要理解的几个概念: ---回文 ---子序列 ---子串 http://www.cnblogs.com/LCCRNblo ...
- bzoj 4044 Virus synthesis - 回文自动机 - 动态规划
题目传送门 需要高级权限的传送门 题目大意 要求用两种操作拼出一个长度为$n$的只包含'A','T','G','C'的字符串 在当前字符串头或字符串结尾添加一个字符 将当前字符串复制,将复制的串翻转, ...
- 动态数组怎么定义_动态规划最长回文子序列
动态规划|最长回文子序列 今天一起来学习Leetcode第 516 题:最长回文子序列. 题目描述 题目分析 首先回文字符串指的是形如"a","aa",''ab ...
- 算法62---最长回文子序列长度(子串)、回文子序列总共个数(子串)【动态规划】...
参考链接:https://www.cnblogs.com/AndyJee/p/4465696.html 一.题目:最长回文子序列长度 给定字符串,求它的最长回文子序列长度.回文子序列反转字符顺序后仍然 ...
最新文章
- 安卓后端mysql_后端Spring Boot+前端Android交互+MySQL增删查改(Java+Kotlin实现)
- 由获取子元素的方法find和children所获
- 1215.1——动态分配内存的补充realloc
- 002服务提供者Eureka
- 催收 重新分案_贷后风险管理(催收)模型框架搭建
- 静态路由的设置以及缺省路由的发布
- JavaScript闭包
- 前端常用标签与注意事项
- 最小熵原理(四):“物以类聚”之从图书馆到词向量
- Flutter高仿微信-第47篇-群聊-语音
- 北斗和GPS定位在室外非常好用,但当手机进入室内时,它们的定位功能就很不准,甚至无法定位。我们可以开启WLAN扫描定位WIFI模块固定编码或者开启手机的A-GPS辅助定位通过基站,A-GPS服务器定位
- 【操作系统⑧】——信号量与PV操作(下)【哲学家进餐问题 AND型信号量 信号量集机制】
- C++高级搜索算法迭代加深—————骑士精神
- 使用gulp为项目中的文件自动添加版本号之实践思路
- AC最佳防守——一些头疼的错误
- 模拟银行账户功能java_用JAVA语言编写程序,模拟银行账户功能。要有..._银行招聘考试_帮考网...
- POJ-3208 Apocalypse Someday (数位DP)
- CAD看图软件哪个好?最好用的CAD看图软件推荐
- ppt里面怎么打破折号
- java实验Java面向对象编程_Java实验项目 面向对象编程.doc
热门文章
- Android 4.1最终版SDK和ADT Plugin全线发布
- Android开发三:常用控件1--TextView、EditText、Button
- Android 7.1.1 去感叹号
- 服务 进程守护 MarsDaemon 简介
- ipcs, ipcrm
- Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.ClassVisitor
- WebDriver 小毛笔记(二)准备工作
- 【mongoDB】 备份
- Unable to resolve target 'android-5'
- Android 极光推送设置别名