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

网站开发个人感想莱芜在线论坛话题莱芜都市网

网站开发个人感想,莱芜在线论坛话题莱芜都市网,wordpress模板带后台,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.yayakq.cn/news/335285/

相关文章:

  • 做网站建设最好学什么蓝色脚手架织梦企业网站模板
  • 适合团购报名的网站开发制作网页时什么是错误的做法
  • 营销型网站有什么特点如何在微信平台做购买网站
  • 正能量网站有哪些php仿博客园网站
  • php做网站的公司有哪些广州网站建设 致茂
  • 毕设什么类型网站容易做做交互的网站
  • 网站建设模板制作前景模板网站官网
  • flash网站尺寸桂林
  • 网站静态化设计专门做珠宝的网站
  • 滑县网站建设哪家便宜捷克cz公司网站
  • 分类信息网站手机版安庆网站建设公司
  • 做网站排名优化是怎么回事今天福州发生的重大新闻
  • 装修网站怎么做的好处做网站后台用什么语言好
  • 天元建设集团有限公司济南中标项目宁波seo优化
  • 深圳网站建设公司百度蜘蛛开发网站
  • 景区网站建设的目标定位本地主机做网站
  • 地方网站商城怎么做模板之家官网首页
  • 网站培训方案自动生成设计图
  • 温州英文网站建设网站建设制作 南京公司哪家好
  • 个人网站用移动硬盘做服务器网站底部代码大全
  • 做外贸最适合的网站系统更换网站域名之后
  • 江苏省住房城乡建设厅门户网站亚洲建行网站打不开
  • 网站内容建设 发布形式手机网站与pc网站同步
  • 化妆品公司网站设计WordPress免费问答主题
  • 长春作网站的那家专业做化学招聘的网站有哪些
  • 做网站售后几年为wordpress首页添加关键词
  • 网站群系统破解版佛山知名网站建设公司
  • 网站制作的流程包括淮安哪有专业做网站的公司
  • 广东省建设工程执业资格注册中心网站东阳市城建设局网站
  • 怀集网站建设大连建设工程网