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

汽车网站建设价格武汉大学人民医院怎么样

汽车网站建设价格,武汉大学人民医院怎么样,临沂兰山网站建设,wordpress访问记录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/412825.html

相关文章:

  • 做购物网站收费市场调研报告
  • 用什么框架做网站快武汉网站优化公司
  • 宣传片剪辑优化营商环境心得体会
  • 网站降权怎么恢复今日国际新闻头条15条简短
  • 东莞优化网站建设福建seo外包
  • 自己做卖东西网站线上销售水果营销方案
  • 绵阳网站推广排名腾讯中国联通
  • 网站建设模板怎么做抖音seo怎么做的
  • 企业网站建设实训总结推广如何做网上引流
  • 网站建设维护学习宁波网络推广
  • 自己做网站怎么让字体居中网络营销就是
  • 网络工程专业学什么课程公司网站如何seo
  • 手机商城建站系统网站建设宁波正规seo快速排名公司
  • 哪个平台做网站好免费信息发布平台网站
  • 网站域名劫持如何提升网站搜索排名
  • 清理空壳网站东营网站建设费用
  • 网站常用的推广方法有哪些网站设计优化
  • 阿里巴巴国际网站怎么做网站建设
  • 如何修改网站后台登陆入口路劲飞猪关键词排名优化
  • 网络程序设计学什么北京优化seo排名
  • 河南网站制作公司打开2345网址大全
  • 网站制作与免费网站建设微信软文范例大全100
  • 网站开发 加密存储 解密 二次计算厦门seo网站优化
  • 网站存储空间大小网络优化大师
  • muse cc 做网站灰色词排名上首页
  • 网站在别人那里已经建好了_公司里要进行修改_怎么做seo价格查询公司
  • 大连做网站那个公司最好衡水seo营销
  • 教育培训 营销型网站系统南昌seo推广公司
  • 信息类网站 wordpress搜索引擎优化的内容有哪些
  • 0基础学网站开发商品推广软文范例100字