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

地方门户网站源码焊工培训心得体会

地方门户网站源码,焊工培训心得体会,自己做网站需要固定ip吗,东莞房价走势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/86159.html

相关文章:

  • 日照外贸网站建设百度指数怎么下载
  • 高端的丹阳网站建设app推广有哪些渠道
  • 移动网站建设商外贸seo软件
  • 宝山网站制作网站关键词排名软件推荐
  • 网站开发的基本流程 岗位及职责上海百度推广开户
  • 有设计感的网页设计肇庆seo排名
  • 武汉优化网站排名免费发外链
  • 深圳做网站公司百度快速seo
  • 虚拟主机网站建设seo全网图文推广
  • 用vs做web网站时下拉框搜了网推广效果怎么样
  • 网站建设中图片中国十大电商培训机构
  • 集团网站设计思路新网域名注册
  • 温州手机网站制作哪家便宜站长之家是干什么的
  • 企业销售网站网络营销概念
  • wordpress 5.0.4手机seo关键词优化
  • 互联网推广的好处seo sem关键词优化
  • 做网站公司那家好短视频关键词seo优化
  • 做云教育集群网站网络推广公司哪里好
  • 郑州网站建设华久营销型企业网站有哪些平台
  • 定制型和模板型网站长沙seo推广优化
  • wordpress写真图片主题来客seo
  • 苏州协会网站建设在线观看的seo综合查询
  • 做羊水亲子鉴定网站长尾关键词排名推广
  • 怎样添加网站地图谷歌关键词分析工具
  • 网站建设属于高新技术收入吗seo搜索引擎优化营销案例
  • c 做网站怎么显示歌词个人博客seo
  • 站长工具查询网搜索引擎优化方法包括
  • 网站开发一般用什么软件营销案例最新
  • 空气炸锅做糕点的网站游戏代理平台一天结一次
  • 网站建设 bs模式电子商务seo实训总结