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

企业网站设计与建设惠州百度seo哪里强

企业网站设计与建设,惠州百度seo哪里强,网站建设沧州,专业做网站系统1.买卖股票的最佳时机 暴力解法就是两层循环&#xff0c;找出两个差值最大的即可。 优化&#xff1a;在找最小的时候不用每次都循环一遍&#xff0c;只要在i向后走的时候&#xff0c;每次记录一下最小的值即可 class Solution { public:int maxProfit(vector<int>& p…

1.买卖股票的最佳时机

在这里插入图片描述

暴力解法就是两层循环,找出两个差值最大的即可。 优化:在找最小的时候不用每次都循环一遍,只要在i向后走的时候,每次记录一下最小的值即可

class Solution {
public:int maxProfit(vector<int>& prices) {int n=prices.size();int ret=0;for(int i=0,prevMin=INT_MAX;i<n;i++)//i是卖的那一天{//1.先更新结果ret=max(ret,prices[i]-prevMin);//2.更新最小值prevMin=min(prices[i],prevMin);}return ret;}
};

2.买卖股票的最佳时机Ⅱ

在这里插入图片描述
在这里插入图片描述

只需要在每次上升到最高点的时候卖掉即可,这样+起来的总和就是最高利润;

  • 当prices[j+1]>prices[j] 时,就让j++
  • 走到prices[j+1]<prices[j]就让,i++,j=i 继续向后寻找,直到出现prices[j+1]>prices[j]
class Solution {
public:int maxProfit(vector<int>& prices) {int n=prices.size();int ret=0;for(int i=0;i<n;i++){int j=i;while(j+1<n && prices[j+1]>prices[j])j++;ret+=prices[j]-prices[i];i=j;}return ret;}
};

3.K次取反后最大化的数组

在这里插入图片描述
我们设m是整个数组中负数的个数,那么就根据m和k的大小进行分类讨论

  • m>k (先排序)反转前k个数,再相加
  • m==k 把所有的数都当成正数加起来
  • m<k
  •    1.当k-m是偶数时,就和m==k情况相同
    
  •      2.当k-m是奇数时,把绝对值最小的那个数变成负数即可
    
class Solution {
public:int largestSumAfterKNegations(vector<int>& nums, int k) {int m = 0;int minElm = INT_MAX;for (int i = 0; i < nums.size(); i++) {if (nums[i] < 0)m++;minElm = min(minElm, abs(nums[i]));}int ret = 0;// 分类讨论if (m > k) {sort(nums.begin(), nums.end());for (int i = 0; i < k; i++) {ret += abs(nums[i]);}for (int i = k; i < nums.size(); i++) {ret += nums[i];}} else if (m == k) {for (int i = 0; i < nums.size(); i++)ret += abs(nums[i]);} else {if ((k - m) % 2 == 0) // 偶数{for (int i = 0; i < nums.size(); i++)ret += abs(nums[i]);}else{for (int i = 0; i < nums.size(); i++)ret += abs(nums[i]);ret=ret-2*minElm;}}return ret;}
};

4.按身高排序

在这里插入图片描述

  1. 创建一个下标数组
  2. 仅需对下标数组排序(根据身高进行排序规则的改变)
  3. 根据下标找到对应的字符串 在这里插入图片描述
class Solution {
public:vector<string> sortPeople(vector<string>& names, vector<int>& heights) {//创建一个数组下标int n=heights.size();vector<int> v(n);for(int i=0;i<n;i++)v[i]=i;//重写sort的比较方法sort(v.begin(),v.end(),[&](int i,int j){return heights[i]>heights[j];});//通过下表找到响应的字符串vector<string> ret;for(int i:v){ret.push_back(names[i]);}return ret;}
};

优势洗牌(田忌赛马)

在这里插入图片描述

排序(贪心)

  1. 最差的能比过就直接比
  2. 比不过就去跟对面最大的比,废物利用最大化

步骤:
先对两个数组排序,然后用贪心的思想去排序,这样出来的结果和题目的实例是不一样的;
原因就在于题目的nums2没有排序,所以我们就要用到身高那一题的思想用下标数组来解决,
创建一个index数组,数组的排序规则就是比较nums2中的大小,然后再index数组中创建一个left和right用来记录最大值和最小值

class Solution {
public:vector<int> advantageCount(vector<int>& nums1, vector<int>& nums2) {int n=nums2.size();vector<int> ret(n);//存放结果vector<int> index(n);//下标数组for(int i=0;i<n;i++){index[i]=i;}sort(nums1.begin(),nums1.end());//下标数组排序sort(index.begin(),index.end(),[&](int p1,int p2){return nums2[p1]<nums2[p2];});//记录index的左右两边int left=0,right=n-1;for(int i=0;i<n;i++){//贪心:比得过就比,比不过就跟最大的比if(nums1[i]>nums2[index[left]]){ret[index[left++]]=nums1[i];}else{ret[index[right--]]=nums1[i];}}return ret;}
};
http://www.cadmedia.cn/news/11777.html

相关文章:

  • 免费网站建设哪个好知名seo公司
  • 南阳建设重要区域中心城市网站常见的营销手段
  • 上海松江做网站建设自己做网站的流程
  • 网站平台管理如何让百度快速收录新网站
  • web开发是网站开发吗有什么公司要做推广的
  • 南昌定制网站建设疫情最新资讯
  • 域名访问网站下中国最厉害的营销策划公司
  • 网站建设制作软件网站设计公司官网
  • 网站建设企新东方烹饪培训学校
  • 找人做网站需要注意什么问题哈尔滨网络优化推广公司
  • 网站建设项目前景seo收录排名
  • 网站logo源码2020年可用好用的搜索引擎
  • 夸克网页版萧山区seo关键词排名
  • 国外网站建设方案搜索引擎营销特点
  • 设计灵感网站整理谷歌搜索引擎363
  • 大型网站建设一般多少钱营销服务机构
  • 营销推广的主要方式seo外贸推广
  • 企业网站维护的主要内容百度广告联盟点击一次多少钱
  • 公司网站公司社群营销平台有哪些
  • 东莞做网站推广新网域名
  • 青岛做网站皆赴青岛博采seo是什么岗位
  • 科技加盟网站建设推广游戏怎么拉人最快
  • 成都疫情今天咋样seo网站优化助理
  • oa协同办公系统平台广州seo和网络推广
  • 上海市建设安全协会网站国际时事新闻
  • 蜂蜜网站建设百度网盘app下载安装 官方下载
  • 海南疫情最新数据江北seo页面优化公司
  • 中太建设集团网站关键词搜索方法
  • 淘宝入驻网站建设优化网络的软件下载
  • 网站怎么做浏览量才会多女生做sem专员的工作难吗