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

电子产品网站建设策划方案家装设计需要学什么软件

电子产品网站建设策划方案,家装设计需要学什么软件,长沙网站制作方法,北京建工招标平台目录 一、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/980384/

相关文章:

  • 做网站如何不被忽悠网站建设服务ysaigo
  • 茂名网站制作推广论坛推广技巧
  • 南乐网站建设电话wordpress图片保存
  • 做网站卖产品要注册公司吗国外网站页头设计图片
  • 网站收录不稳定怎么申请自己的小程序
  • 东昌府聊城做网站公司广州短视频代运营公司
  • 品牌手机网站建设佛山网站建设优化制作公司
  • 浙江做铁塔的公司网站2022年编程语言官方排行榜
  • 做电销哪些网站可以找到客户时代设计网 新网站
  • 做seo要先做网站么unix做网站常用的数据库
  • 中国建设银行网站主要功能网站用橙色
  • 橙色企业网站源码简单个人网站制作
  • 如何写一份食品的网站建设规划网站的标志可以修改吗
  • 游戏开发难还是网站开发难泰安网站建设企业
  • 北京做网站要多少钱手机上如何制作app
  • php外贸网站制作网站建设和管理是教什么科目
  • 能做网站的网站有啥好玩的网页游戏
  • 诸城公司做网站石家庄搜索引擎优化
  • 济南建站旅游网站排行榜前20
  • 陕西恒业建设集团网站自己做的网站怎么接入数据库
  • 如何建设医院网站女装网站建设费用预算
  • 开普网站建设公司wordpress文章后面评论
  • 完整网站项目的逻辑京东快递 网站建设特点
  • 七七网站建设wordpress怎么做开发
  • 蔚县做网站杭州手机app制作
  • 可以写代码的网站有哪些问题吗网站维护是什么工作
  • 西安微信网站建设公司中文企业网站模板下载
  • 静态网站注入汝城网站建设公司
  • 银川如何做百度的网站常熟沿江开发区人才网
  • 甘肃金恒大建设有限公司网站济南网站排名公司