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

地方门户网站源码seo课程排行榜

地方门户网站源码,seo课程排行榜,广州敏城建设工程有限公司网站,中文搜索引擎1.题目分析 2.算法原理 我们只需要利用双指针算法就可以计算排序之后的双数之和。排序用库中自带的sort函数。双指针算法利用下标访问。用int和下标访问代替指针更为直观。还需要考虑去重的操作。即left之后,nums[left]nums[left-1]还需要left; 3.代码实操 class…

1.题目分析

2.算法原理

我们只需要利用双指针算法就可以计算排序之后的双数之和。排序用库中自带的sort函数。双指针算法利用下标访问。用int和下标访问代替指针更为直观。还需要考虑去重的操作。即left++之后,nums[left]==nums[left-1]还需要left++;

3.代码实操

class Solution {
public:vector<int> twoSum(vector<int>& price, int target) {vector<int>nums;size_t left=0;size_t right=price.size()-1;;while(left<right){if(price[left]+price[right]<target){left++;}else if(price[left]+price[right]>target){right--;}else{nums.push_back(price[left]);nums.push_back(price[right]);return nums;}}return nums;}
};

1.题目分析

2.算法原理

三数之和先固定第一个数字,然后target-固定的数字取相反数等于两数之和即可,需要注意去重操作和双数之和类似。

3.代码实操

class Solution {
public:vector<vector<int>> threeSum(vector<int>& nums) {sort(nums.begin(), nums.end());
size_t left = 1;
int right = nums.size() - 1;
size_t cur = 0;
int count = 0;
vector<vector<int>>num;
vector<int>arr;
while (cur != nums.size() - 2)
{while (left < right){if (nums[left] + nums[right] == -nums[cur]){arr.push_back(nums[left]);arr.push_back(nums[right]);arr.push_back(nums[cur]);num.push_back(arr);arr.clear();count = 0;while (nums[left] == nums[left + 1]){if (left + 1 < nums.size() )left++;if (left + 1 == nums.size())break;}if (left + 1 < nums.size() )left++;elsebreak;while (nums[right] == nums[right - 1]){if (right - 1 > -1)right--;if (right - 1 == -1)break;}if (right - 1 > -1)right--;elsebreak;}else{if (nums[left] + nums[right] < -nums[cur]){if (left + 1 < nums.size() )left++;}else {if (right - 1 > -1)right--;}}}while (nums[cur] == nums[cur + 1]){if(cur+1<nums.size())cur++;if (cur == nums.size() - 2)break;}if (cur == nums.size() - 2)break;if (cur + 1 < nums.size())cur++;elsebreak;right = nums.size() - 1;left = cur + 1;
}
return num;}
};

1.题目分析

2.算法原理

四数之和用三数之和和双数之和。依次固定第一个数字第二个数字,然后用双数之和。它们的操作都是类似的。区别在于这一个题目用前一个题目的思路。为了避免数字相同超出边界要做边界判断。

注意:去重操作和不漏操作。

去重在于++之后看是否和前一个值相等,是则再次++否则结束循环。

不漏操作时找出双数之和和三数之和后还要继续该循环,找出所以得双数之和和三数之和的符合值。

3.代码实操

class Solution {
public:
vector<vector<int>> fourSum(vector<int>& nums, int target) {vector<int>a;vector<vector<int>>num;if(nums.size()<4) return num;sort(nums.begin(), nums.end());int cur = 0;int pos = 1;int left = pos + 1;int right = nums.size() - 1;int sum = 0;while (cur < nums.size() - 3){long long int target1 = target - nums[cur];while (pos < nums.size() - 2){long long int target2 = target1 - nums[pos];while (left < right){sum = nums[left] + nums[right];if (sum < target2){left++;}if (sum > target2){right--;}if (sum == target2){a.push_back(nums[cur]);a.push_back(nums[pos]);a.push_back(nums[left]);a.push_back(nums[right]);num.push_back(a);a.clear();left++;right--;while (left < right&&nums[left - 1] == nums[left]){left++;}while (left < right&&nums[right + 1] == nums[right]){right--;}}}pos++;while (pos<nums.size()-2&&nums[pos - 1] == nums[pos]){pos++;if (pos >= nums.size() - 2)break;}if (pos >= nums.size() - 2)break;left = pos + 1;right = nums.size() - 1;}cur++;while (nums[cur - 1] == nums[cur]){cur++;if (cur >= nums.size() - 3)break;}if (cur >= nums.size() - 3)return num;pos = cur + 1;left = pos + 1;right = nums.size() - 1;}return num;
}
};

http://www.dtcms.com/wzjs/267874.html

相关文章:

  • 网站的联系我们怎么做app拉新推广接单平台
  • 学校网站建设的意义和应用网络营销的基本职能
  • 做网站的windowlcd服务器域名怎么注册
  • 桥梁建设工程网站seo怎么优化排名
  • 电商网站哪家做的好重庆关键词排名推广
  • 个人网站可以做论坛吗必应搜索网站
  • 北京南站停车场收费标准如何做企业产品推广
  • 叫人做国外公司网站让老外做好还是国内人做好seo3的空间构型
  • 专业单位网站设计企业怎样注册网站免费注册
  • 做书app下载网站有哪些内容百度pc网页版
  • 网站建设推广怎么做全国seo搜索排名优化公司
  • 泰兴建设局网站seo网站排名优化公司哪家
  • 免费名字设计logo网站网络推广的方法你知道几个?
  • 设计学类专业性网站简单的网页设计作品
  • 专业网站建设定制公司seo优化就业前景
  • 隐藏网站后台徐州百度seo排名
  • 政府网站群整合建设方案怎样联系百度客服
  • 厦门网站建设缑阳建软文推广经典案例
  • 阿里云 wordpress 404爱站网seo培训
  • 上海大学生兼职做网站百度网址
  • 企业建设网站 意义何在网站主题
  • 衢州在建高铁站安卓aso关键词优化
  • 企业网站制作建站公司网络营销的六大功能
  • 衡阳做网站ss0734站长基地
  • 可信网站认证深圳seo优化培训
  • 找做网站公司需要注意什么条件软文广告投放平台
  • 武汉营销网站设计企业网站推广优化公司
  • 偷拍做自拍视频网站西安seo排名优化推广价格
  • 企业百度网站怎么做恩施seo整站优化哪家好
  • 一键查询个人房产信息湖北seo公司