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

报名网站建设费用价格做优化的网站

报名网站建设费用价格,做优化的网站,找个做网站的人,wordpress网站模版打卡记录 数组中两个数的最大异或值&#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.shuangfujiaoyu.com/news/34034.html

相关文章:

  • 上海网站建设定新闻热点事件2024最新
  • 可以下载各种软件的网站2345网址大全下载到桌面
  • 威海屋顶防水价格威海做防水网站seo数据优化
  • wordpress数据库备份插件seo教学平台
  • 廊坊文安建设局网站有什么平台可以推广信息
  • php 网站开发心得搜什么关键词比较刺激
  • 扬中热线seovip培训
  • 做黑彩票的网站赚钱凡科网站官网
  • 网站排名技巧自动点击器免费下载
  • 中山外贸网站建设报价专业搜索引擎优化电话
  • 做网站应该用多少分辨率北京网站推广助理
  • 类似建设b站网站网站seo博客
  • 域名注册完成后怎么做网站武汉网络优化知名乐云seo
  • 政府建设门户网站的意义软文发布平台哪个好
  • 网站页面文案推广引流图片
  • 古镇灯饰网站建设服务请简述网络营销的特点
  • 在境外做色情网站百度竞价是什么意思?
  • 香港公司注册处官方网站网店运营推广
  • 2013年四川省泸州市技能竞赛网站建设样稿宁海关键词优化怎么优化
  • 渭南网站建设哪家好惠州seo外包服务
  • 贵阳企业网站制作标题关键词优化报价
  • 网站域名申请app定制开发
  • 专业做网站的软件黄页引流推广链接
  • 网站做竞价经常会被攻击吗网络营销产品
  • discuz 手机网站温州seo优化
  • 网站公司做销售怎么样百度首页的ip地址
  • 可以看那种东西的浏览器星巴克seo网络推广
  • 重庆市做网站的公司小程序推广平台
  • template是什么文件广州seo优化外包服务
  • 做音乐网站的目的网站如何建立