做软装什么网站可以吗,百度全网营销,在那个网站找模具做,建筑设计公司招聘贪心算法#xff1a; 比较传统的解释#xff1a;将整个问题拆解为几个小问题#xff0c;找到小问题的最优解#xff0c;加起来就是整个问题的全局最优解。对于现在的我理解贪心就是一种感觉#xff0c;给出证明很难#xff0c;解题思路一般就是认真读题#xff0c;发掘题…贪心算法 比较传统的解释将整个问题拆解为几个小问题找到小问题的最优解加起来就是整个问题的全局最优解。对于现在的我理解贪心就是一种感觉给出证明很难解题思路一般就是认真读题发掘题目的条件然后尝试给出算法。
11. 盛最多水的容器 一个显而易见的条件水的面积取决于底边的长度和水池两边的最短边因此可以首先选择最长的底边然后在此基础上在选较高的水池的一边在这个过程中计算面积最大值保存即可。
class Solution {
public:int maxArea(vectorint height) {int maxArea 0;for (int i 0, j height.size() - 1; i j; ) {if (height[i] height[j]) {maxArea max((j - i) * height[i], maxArea);i;} else {maxArea max((j - i) * height[j], maxArea);j--;}}return maxArea;}
};
122. 买卖股票的最佳时机 II 求解思路累加每天股票变化的增加的部分比如1和5是涨的那么最后的结果肯定是涨的所以需要把该部分累加。
class Solution {
public:int maxProfit(vectorint prices) {int profit 0;for (int i 0; i prices.size(); i) {for (int j i 1; j prices.size() prices[j] - prices[i] 0; j, i) {profit prices[j] - prices[i];}}return profit;}
};
680. 验证回文串 II 这道题的思路还是比较直观的就是双指针判断然后处理删除的情况关键在于怎么处理删除的情况需要重点理解这里体现了根据局部解推出全局解的思想。
class Solution {
public:bool validPalindrome(string s) {int left 0, right s.size() - 1;while (left right) {if (s[left] ! s[right]) {return isPalindrome(s, left 1, right) || isPalindrome(s, left, right - 1);}left;right--;}return true;}bool isPalindrome(const string s, int left, int right) {while (left right) {if (s[left] ! s[right]) {return false;}left;right--;}return true; }
};