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

深圳宝安p2p网站系统的建设PHP网站开发用什么电脑

深圳宝安p2p网站系统的建设,PHP网站开发用什么电脑,工作室建设,私人网页服务器目录 一、k次取反后最大化的数组和 二、优势洗牌 三、最长回文串 四、增减字符串匹配 一、k次取反后最大化的数组和 k次取反后最大化的数组和 贪心策略&#xff1a; 解题代码&#xff1a; class Solution { public:int largestSumAfterKNegations(vector<int>&am…

目录

一、k次取反后最大化的数组和

二、优势洗牌

三、最长回文串 

四、增减字符串匹配


一、k次取反后最大化的数组和

k次取反后最大化的数组和

贪心策略:

解题代码: 

class Solution 
{
public:int largestSumAfterKNegations(vector<int>& nums, int k) {int m = 0;int min_elec = INT_MAX;for(auto& x:nums){if(x < 0)m++;min_elec = min(min_elec, abs(x));}sort(nums.begin(), nums.end());int ret = 0;if(m > k){for(int i = 0; i < nums.size(); i++){if(i < k){ret += -nums[i];continue;}ret += nums[i];}}else{for(auto& x : nums)ret += abs(x);if((k-m) % 2)ret -= 2*min_elec;}return ret;}
};


二、优势洗牌

优势洗牌

引例:田忌赛马 

田忌赛马的故事,我相信大家都知道。赛马的要求就是:上等马对上等马,中等马对中等马,下等马对下等马。因为齐王的上中下等马,都依次比田忌的上中下等马好一些,所以无论怎么比,田忌都无法获胜。

而孙膑给田忌出了个注意:田忌的下等马对齐王的上等马,中等马对下等马,上等马对中等马。这样,虽然齐王的上等马对田忌的下等马是场碾压式的胜利,可是另外两场,田忌都可以获胜。总的来说,就是田忌获胜了。

而我们这道题的贪心策略就可以从田忌赛马中获得启发。

贪心策略:

我们根据示例二来模拟一下解题过程。

我们需要先对数组进行排序。贪心策略对于田忌赛马的思想运用,就是对于同一位置来说,如果nums1的值小于nums2的值, 那么我们就拿nums1的值去匹配nums2中没有被匹配元素的最大元素。

解题代码:

class Solution 
{
public:vector<int> advantageCount(vector<int>& nums1, vector<int>& nums2) {int m = nums1.size();sort(nums1.begin(), nums1.end());vector<int> index(m);for(int i = 0; i < m; i++)index[i] = i;sort(index.begin(), index.end(), [&](int i, int j){return nums2[i] < nums2[j];});vector<int> ret(m);int left = 0, right = m-1;for(auto& x:nums1){if(x <= nums2[index[left]]){ret[index[right]] = x;right--;}else if(x > nums2[index[left]]){ret[index[left]] = x;left++;}}return ret;}
};


三、最长回文串 

最长回文串

贪心策略:

1、先统计字符串s中,各个字符的个数。

2、如果某个字符的个数是偶数,那么所有的这个字符都可以去构成回文串。

3、如果有字符的个数是奇数,那么可以选择其中一个字符放在中间,如下:

注:设一个字符个数为x,那么该字符可以构成回文串的个数为 x / 2 * 2。 

解题代码: 

class Solution 
{
public:int longestPalindrome(string s) {int hash[127] = {0};for(auto& e:s)hash[e]++;int len = 0;for(int i = 0; i < 127; i++)len += hash[i] / 2 * 2;return len == s.size() ? len : len+1;}
};


四、增减字符串匹配

增减字符串匹配

贪心策略: 

1、当遇到 'I',选择当前能够选择的最小的数。

2、当遇到 'D',选择当前能够选择的最大的数。 

解题代码:

class Solution 
{
public:vector<int> diStringMatch(string s) {int n = s.size();vector<int> ret;int left = 0, right = n;for(auto& e : s){if(e == 'I')ret.push_back(left++);elseret.push_back(right--);}ret.push_back(left);return ret;}
};

http://www.yayakq.cn/news/120825/

相关文章:

  • 厦门市建设局官方网站证书查询商业摄影网站
  • wordpress建站版本推荐音乐制作网站
  • wordpress建站腾讯云58同城房产信息
  • 网站建设与管理的就业方向哈尔滨网站基础优化
  • 影视作品网站开发与设计建筑信息公开平台
  • 什么网站做hevc成都住房和城乡建设部网站查询
  • 某网站做参考文献的书写北京市保障性住房建设投资中心官方网站备案
  • 手机网站竞价wordpress作品链接修改
  • 海南网站建设海南网络公司本地生活服务平台
  • 北京电子商务网站制作朋友找做网站都要收定金
  • 进一步加强网站建设管理专业的饰品行业网站开发
  • 扬州专业手机网站开发公司官网在哪找
  • 自己制作的网站怎么发布如何做网站的教程
  • 高唐做创建网站的公司传奇手游网页游戏平台
  • 互联网保险产品昆明网络推广优化
  • 国产化网站建设wordpress如何cdn优化
  • 学校校园网站建设现在学软件前景怎么样
  • 商务网站专题页微信有网站开发吗
  • 品牌广告设计制作公司网站源码沈阳网站开发培训价格
  • 北京金山办公软件股份有限公司官网网站建设优化合同
  • 视频网站点击链接怎么做河南省建筑一体化平台官网
  • 广东粤建设计院网站凡科互动下载
  • 视频推广网站湛江网站制作系统
  • 做彩票网站需要什么服务器能建网站的app
  • 网站建设如何加入字体域名备案在哪里备案
  • 网站开发参考书彩票网站开发解决方案
  • 网站页中繁体转移代码湖南郴州
  • 中国芗城区城乡建设局网站河南省建设集团有限公司官网
  • 天津建设项目招投标网站分析网站的关键词
  • 深圳公司网站改版通知uc推广登录入口