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

专业的营销网站建设公司外链工厂

专业的营销网站建设公司,外链工厂,公司网站制作,个人单页网站建设1.咒语和药水的成功对数 题目 解析 注意点&#xff1a;函数引用数组要加 &&#xff0c;不然会超时&#xff1b;时间复杂度&#xff1a;O((n m) * log m&#xff1b;空间复杂度&#xff1a;O(1)&#xff1b; 代码 class Solution {int lower_bound(vector<int>&a…

1.咒语和药水的成功对数

题目

解析

  • 注意点:函数引用数组要加 &,不然会超时;
  • 时间复杂度:O((n + m) * log m;空间复杂度:O(1);

代码

class Solution {int lower_bound(vector<int>& potions,double target){int l = 0,r = potions.size() - 1;while(l <= r){int mid = l + (r - l) / 2;if(potions[mid] >= target){r = mid - 1;} else {l = mid + 1;}}return l;}public:vector<int> successfulPairs(vector<int>& spells, vector<int>& potions, long long success) {// 时间复杂度:O(nlog n)// 空间复杂度:O(1)vector<int> ans(spells.size(),0);sort(potions.begin(),potions.end());for(int i = 0;i < spells.size();i ++){int start = lower_bound(potions,(double)success / spells[i]);ans[i] = potions.size() - start;}return ans;}
};

2.和有限的最长子序列

题目

解析

  • nums 数组可以排序,不影响子序列长度,本题需要一个额外数组记录前缀和;
  • 时间复杂度:O((n + m) * log n;空间复杂度:O(n);

代码

class Solution {int lower_bound(vector<int>& s,int target){int l = 0,r = s.size() - 1;while(l <= r){int mid = l + (r - l) / 2;if(s[mid] >= target){r = mid - 1;} else {l = mid + 1;}}return l;}public:vector<int> answerQueries(vector<int>& nums, vector<int>& queries) {// 时间复杂度:O((n + m) * log n)// 空间复杂度:O(n)int n = nums.size(),m = queries.size();vector<int> ans(m,0);sort(nums.begin(),nums.end());// 排序不影响子序列和vector<int> s(n);// 前缀和数组s[0] = nums[0];for(int i = 1;i < n;i ++) s[i] = s[i - 1] + nums[i];for(int i = 0;i < m;i ++){int x = lower_bound(s,queries[i] + 1) - 1;ans[i] = x + 1;}return ans;}
};

3.统计公平数对的数目

题目

解析

  • 同理可得;

代码

class Solution {int lower_bound(vector<int>& nums,int target){int l = 0,r = nums.size() - 1;while(l <= r){int mid = l + (r - l) / 2;if(nums[mid] >= target){r = mid - 1;} else {l = mid + 1;}}return l;}public:long long countFairPairs(vector<int>& nums, int lower, int upper) {// 时间复杂度:O(nlog n)// 空间复杂度:O(1)int n = nums.size();long long ans = 0;sort(nums.begin(),nums.end());for(int i = 0;i < n;i ++){int start = lower_bound(nums,lower - nums[i]);int end = lower_bound(nums,upper - nums[i] + 1) - 1;if(start > i) ans += end - start + 1;// 左边界在 i 右边else if(end > i) ans += end - i;// 边界包含 i}return ans;}
};
http://www.dtcms.com/wzjs/7900.html

相关文章:

  • 山西建设工程执业注册中心网站流量主广告点击自助平台
  • 智能网站建设设计如何推广网站链接
  • 创建网站的目的怎样做网站推广啊
  • 重庆多功能网站建设搜索热门关键词
  • python做h5网站自己怎么做网址开网站
  • iis7建立网站百度一下百度首页官网
  • 我想建一个网站怎么建搭建网站多少钱
  • 抖音网络工作室windows优化大师官方
  • 网站后台权限管理怎么做的百度seo优化培训
  • 如何组做网站关键词搜索工具
  • 门户网站集群建设新媒体营销方式有几种
  • 网站模板整站六年级上册数学优化设计答案
  • 深圳优化网站公司营销公关
  • 怎么不用wordpress上海百度首页优化
  • 网站建设开发文档持续优化完善防控措施
  • 如何诚信网站平台建设中国最新新闻
  • 美女直接做的网站有哪些软文营销的特点有哪些
  • 织梦wap网站海外网站推广优化专员
  • 网站开发工具6淄博信息港聊天室网址
  • 南宁网站定制郑州网站建设七彩科技
  • 自由体网站建设vr全景seo优化服务公司
  • 深圳市福田区656号seo优化分析
  • 厦门网站建设哪家专业如何创建网站站点
  • 网站建设策划成都推广团队
  • 谷歌网站建设代理seo是什么意思网络用语
  • 宝塔网站做301重定向2020年度关键词有哪些
  • 自己建网站怎么做seo精准数据营销方案
  • 与魔鬼做交易的真实网站惠州seo报价
  • 全国性质的网站开发公司seo岗位工作内容
  • wordpress顶部图像修改seo培训资料