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

桂林技术交流站如何进行简单的网页设计

桂林技术交流站,如何进行简单的网页设计,银行营销活动方案,成品网站模块传送门 文章目录6354. 找出数组的串联值6355. 统计公平数对的数目6356. 子字符串异或查询6357. 最少得分子序列6354. 找出数组的串联值 题目 思路 前后指针 代码 class Solution { public:long long findTheArrayConcVal(vector<int>& nums) {long long res 0;i…

传送门

文章目录

  • 6354. 找出数组的串联值
  • 6355. 统计公平数对的数目
  • 6356. 子字符串异或查询
  • 6357. 最少得分子序列

6354. 找出数组的串联值

题目

在这里插入图片描述


思路

前后指针


代码

class Solution {
public:long long findTheArrayConcVal(vector<int>& nums) {long long res = 0;int n = nums.size();for (int i = 0, j = n - 1; i < j; i++, j--) {res += stol(to_string(nums[i]) + to_string(nums[j]));}if (n & 1) res += nums[n / 2];return res; }
};

6355. 统计公平数对的数目

题目

在这里插入图片描述


思路

lower<=nums[i]+nums[j]<=upperlower <= nums[i] + nums[j] <= upperlower<=nums[i]+nums[j]<=upper

转化:

lower−nums[i]<=nums[j]<=upper−nums[i]lower - nums[i] <= nums[j] <= upper - nums[i]lowernums[i]<=nums[j]<=uppernums[i]

倒序遍历,动态查找后缀的在区间如上范围内的值的个数。那么考虑用树状数组获取区间内值的个数。

由于范围过大,且做差会造成负数,树状数组下标从1开始。所以换用map的树状数组,平且值向右平移到正数。


代码

class Solution {
public:using ll = long long;static constexpr ll N = 2e9 + 7;class BIT {public:BIT() {}unordered_map<ll, int> tr;void add(ll x, int v = 1) { for (; x < N << 1; x += x & -x) tr[x] += v; }ll sum(ll x) { ll res = 0; for (; x; x -= x & -x) res += tr[x]; return res; }}; // 切记用 BIT tr; tr.add(); tr.sum();long long countFairPairs(vector<int>& a, int L, int R) {ll res = 0;BIT tree;for (int i = a.size() - 1; i >= 0; i--) {res += tree.sum(R - a[i] + N) - tree.sum(L - a[i] - 1 + N);tree.add(a[i] + N);}return res;}
};

6356. 子字符串异或查询

题目

在这里插入图片描述


思路

映射数值对应的最小开始下标即可,数值在1e9,并且无前导 ‘0’,所以只需要 O(30n)。


代码

class Solution {
public:vector<vector<int>> substringXorQueries(string s, vector<vector<int>>& q) {vector<vector<int>> res;map<int, int> mp;int mn = 1e9;for (int i = 0; i < s.size(); i++) {int x = 0;for (int j = 0; j < 31 && i + j < s.size(); j++) {if (s[i + j] - '0' == 0 && x == 0) {mn = min(mn, i);break;}x = x * 2 + s[i + j] - '0';if (mp.count(x)) {mp[x] = min(mp[x], i);} else {mp[x] = i;}}}for (int i = 0; i < q.size(); i++) {int x = q[i][0] ^ q[i][1];int y = x;int cnt = 0;while (y) { cnt++; y /= 2; }vector<int> v{-1, -1};if (cnt == 0 && mn != 1e9) {v[0] = mn;v[1] = mn;}if (mp.count(x)) {v[0] = mp[x];v[1] = v[0] + cnt - 1;}res.push_back(v);}return res;}
};

6357. 最少得分子序列

题目

在这里插入图片描述


思路

维护前后缀数组,l[i],r[i]l[i],r[i]l[i],r[i]:表示字符串 sss 的前 iii 位子序列在字符串 ttt 中匹配的最长前缀。rrr 同理最长后缀。


代码

class Solution {
public:int minimumScore(string s, string t) {int n = s.size(); vector<int> l(n, 0), r(n, 0); int j = 0;for (int i = 0; i < s.size(); i++) {if (j < t.size() && s[i] == t[j]) ++j;l[i] = j;}j = t.size() - 1;for (int i = s.size() - 1; i >= 0; i--) {if (j >= 0 && s[i] == t[j]) --j;r[i] = t.size() - j - 1;}int res = 1e9; for (int i = 0; i < n - 1; i++) {int L = l[i], R = r[i + 1];if (L + R >= t.size()) return 0; // 都能匹配上,说明t本就是s的子序列res = min(res, (int)((t.size() - R - 1) - (L) + 1));}res = min(res, (int)t.size() - r[0]);res = min(res, (int)t.size() - l[n - 1]);return res;}
};

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

相关文章:

  • 网站开发课程的心得android app for wordpress
  • 济南营销网站建设价格机械英文网站
  • 网站流量数据查询钓鱼网站链接怎么做
  • 前端开发培训找不到工作信息流优化师发展前景
  • 国外h5分享网站环球影城有存放行李的吗
  • 最新章节 第一百四十七章 做视频网站石家庄购物网站排名
  • 建站之星模板怎么设置24淘宝网站建设
  • 网站建设模拟实验报告郑州网
  • 青岛注册公司在哪个网站申请室内设计工作室简介
  • 深圳网站设计兴田德润信任高装饰装修材料
  • 企业网站的特点是什么做vip的网站好做吗
  • 有什么教人做论文的网站吗模板王字库官网
  • 粉红色网站asp企业vi设计包括哪些内容
  • 响应式网站制设计自建站工具
  • dw个人网页模板冯耀宗seo课程
  • 网站建设ppt模板下载网站运营策划方案
  • 为什么进行网站备案先做后付费的代运营
  • 免费做h5的网站知乎网站制作成都
  • 网站服务器和网站备案大连百度代理
  • 如皋市建设局网站西宁做网站君博解决
  • 为什么我有的网站打不开工程建筑公司
  • 重庆彭水网站建设家装博览会
  • 手机域名访问网站怎么进入上海市网站seo
  • 富通建设工程有限公司网站南京做网站哪家公司最好
  • 海南企业网站建设陕西建筑工程网
  • cpa推广做网站名词解释seo
  • 营销型网站建设可行性分析网站备案需要哪些材料
  • 建设工程网站tc全自动推广引流软件
  • 赣州做网站的大公司微信开发者工具在哪里下载
  • 做网站注册会员加入实名认证功能鼓楼机关建设网站