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

报名网站建设公司哪里有公司企业网站建设

报名网站建设公司哪里有,公司企业网站建设,中象做网站怎么样,上饶网站开发 app开发打卡记录 数组中两个数的最大异或值&#xff08;位运算&#xff09; 链接 二进制位上从高位向低位进行模拟&#xff0c;看数组中是否有满足此情况的数字。具体题解 class Solution { public:int findMaximumXOR(vector<int>& nums) {int mx *max_element(nums.be…

打卡记录

在这里插入图片描述


数组中两个数的最大异或值(位运算)

链接

二进制位上从高位向低位进行模拟,看数组中是否有满足此情况的数字。具体题解

class Solution {
public:int findMaximumXOR(vector<int>& nums) {int mx = *max_element(nums.begin(), nums.end());int max_bit = 0, mask = 0, ans = 0;for (int i = 0; i != 32 && (1 << i) <= mx; i++) max_bit = i;unordered_set<int> st;for (int i = max_bit; i >= 0; --i) {st.clear();mask |= 1 << i;int new_ans = ans | (1 << i);for (int x : nums) {x &= mask;if (st.count(new_ans ^ x)) {ans = new_ans;break;}st.insert(x);}}return ans;}
};

四数之和(双指针)

链接

排列数组之后,遍历前两个数字的选取,对后两个数字的选取使用双指针算法,将 O ( n 4 ) O(n^4) O(n4) 优化为 O ( n 3 ) O(n^3) O(n3),类似于三数之和的算法思路。

class Solution {
public:vector<vector<int>> fourSum(vector<int>& nums, int target) {sort(nums.begin(), nums.end());vector<vector<int>> ans;int n = nums.size();for (int a = 0; a < n - 3; ++a) {if (a > 0 && nums[a - 1] == nums[a]) continue;if ((long long)nums[a] + nums[a + 1] + nums[a + 2] + nums[a + 3] > target) break;if ((long long)nums[a] + nums[n - 3] + nums[n - 1] + nums[n - 2] < target) continue;for (int b = a + 1; b < n - 2; ++b) {if (b > a + 1 && nums[b] == nums[b - 1]) continue;if ((long long)nums[a] + nums[b] + nums[b + 1] + nums[b + 2] > target) break;if ((long long)nums[a] + nums[b] + nums[n - 1] + nums[n - 2] < target) continue;int c = b + 1, d = n - 1;while (c < d) {long long sum = (long long)nums[a] + nums[b] + nums[c] + nums[d];if (sum == target) {ans.push_back({nums[a], nums[b], nums[c++], nums[d--]});while (c < d && nums[c] == nums[c - 1]) c++;while (c < d && nums[d] == nums[d + 1]) d--;}else if (sum > target) d--;else c++;}}}return ans;}
};

有效三角形的个数(双指针)

链接

由于数组排列,所以从左到右选取 a, b, c 三点,必有 a <= b <= c,则只需要满足 a + b > c 这个条件即可构成有效三角形。类似于三数之和的思路,这里我们将 c 点作为循环遍历的点,a 与 b 的选取使用双指针来进行,若使用 a 作为循环遍历的点,则会导致 nums[a] + nums[b] > nums[c] 情况下b++,c–都会导致结果依旧为
nums[a] + nums[b] > nums[c] 。

class Solution {
public:int triangleNumber(vector<int>& nums) {int n = nums.size(), ans = 0;if (n < 3) return ans;sort(nums.begin(), nums.end());for (int c = 2; c < n; ++c) {int a = 0, b = c - 1;while (a < b) {if (nums[a] + nums[b] > nums[c]) {ans += b - a;b--;}else a++;}}return ans;}
};
http://www.ds6.com.cn/news/109346.html

相关文章:

  • 安康公司做网站网站关键词怎么快速上排名
  • 兰州新区建站今日国际军事新闻头条
  • 网站建设开票税点快速网站推广
  • 北京seo代理商金华百度seo
  • 企业门户网站制作周期地推拉新app推广接单平台免费
  • 查看网站的 cms东莞关键词排名推广
  • 随州网站建设哪家好企业网络营销策划
  • 东莞网络营销推广渠道重庆白云seo整站优化
  • 一个网站可以同时几个主域名吗爱站seo综合查询
  • 南宁网站制作最新招聘信息西安专业做网站公司
  • html政府网站模板网站页面分析作业
  • 做网站建设业务员怎么样全能优化大师
  • 秦皇岛做网站百度seo排名优化公司
  • 临沂网站制作培训网站自助搭建
  • 用织梦做企业网站14个seo小技巧
  • 建设高效的政府门户网站网络营销顾问
  • 网站制作中英文天津快速排名seo
  • 大型网站如何优化同城推广有什么平台
  • 可以自己做网站服务器不网站自然排名工具
  • 如何通过网站自己做网站关键词优化计划
  • 北京网站建设官网会计培训班
  • 建网站可以铺货重庆白云seo整站优化
  • wordpress滑动门短代码seo怎么做优化计划
  • 广州做网站的公司哪家好江门关键词优化公司
  • 东莞寮步做网站的有吗dz论坛seo设置
  • wordpress 文章缩放百度seo
  • 昆山自适应网站建设小红书seo是什么
  • 三秦网seo搜索引擎优化实训报告
  • 免费做网站的公司教育培训加盟
  • 做go富集的网站国家大事新闻近三天