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

国外空间网站源码腾讯企点是干嘛的

国外空间网站源码,腾讯企点是干嘛的,项目协同管理平台,北京公司网站制作流程leetcode 二数之和 三数之和 四数之和 又到了不想写博客的环节,不想归不想,有些事情还是要做的,今天总结的是多数之和的问题。 二数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target …

leetcode 二数之和 三数之和 四数之和
又到了不想写博客的环节,不想归不想,有些事情还是要做的,今天总结的是多数之和的问题。

二数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。
思考:对于这道题其实很简单,不过要想到利用哈希法来做可能有点难度,一来对哈希结构相关的语法不熟悉,而来贪图方便,就用两个for循环解决了,这里需要注意的是两个for循环的起始位置,需要遍历到所有的可能性。
法一:

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {for(int i=0;i<nums.size()-1;i++){for(int j=i+1;j<nums.size();j++){if(nums[i]+nums[j]==target){return {i,j};}}}return {};}
};

法二:

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int,int> umap;for(int i=0;i<nums.size();i++){auto iter=umap.find(target-nums[i]);if(iter!=umap.end()){return {iter->second,i};}else{umap.insert(pair<int,int>(nums[i],i));}}return {};}
};

三数之和

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请

你返回所有和为 0 且不重复的三元组。

注意:答案中不可以包含重复的三元组。
思考:这道题按照正常的思路也可以,不过剪枝和去重的时候比较麻烦,容易少写或者多写,所以最好按照双指针的写法来写

class Solution {
public:vector<vector<int>> threeSum(vector<int>& nums) {vector<vector<int>> result;sort(nums.begin(),nums.end());for(int i=0;i<nums.size();i++){if(nums[i]>0){break;}if(i>0&&nums[i]==nums[i-1]){continue;}int left=i+1;int right=nums.size()-1;while(right>left){if(nums[i]+nums[left]+nums[right]>0) right--;else if(nums[i]+nums[left]+nums[right]<0) left++;else{result.push_back({nums[i],nums[left],nums[right]});while(right>left&&nums[right]==nums[right-1]) right--;while(right>left&&nums[left]==nums[left+1]) left++;right--;left++;}}}return result;}
};

四数之和

给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):

0 <= a, b, c, d < n
a、b、c 和 d 互不相同
nums[a] + nums[b] + nums[c] + nums[d] == target
你可以按 任意顺序 返回答案 。
思考:这道题和三数之和的解法很像,也是双指针,这样去重时不容易出错,但是有个注意的点就是在判断第二个数时需要参照第一个数的写法

class Solution {
public:vector<vector<int>> fourSum(vector<int>& nums, int target) {vector<vector<int>> result;sort(nums.begin(),nums.end());for(int i=0;i<nums.size();i++){if(nums[i]>target&&nums[i]>=0){break;}if(i>0&&nums[i]==nums[i-1]){continue;}for(int j=i+1;j<nums.size();j++){if(nums[i]+nums[j]>target&&nums[i]+nums[j]>=0){break;}if(j>i+1&&nums[j]==nums[j-1]){continue;}int left=j+1;int right=nums.size()-1;while(right>left){if((long)nums[i]+nums[j]+nums[left]+nums[right]>target) right--;else if((long)nums[i]+nums[j]+nums[left]+nums[right]<target) left++;else{result.push_back(vector<int>{nums[i],nums[j],nums[left],nums[right]});while(right>left&&nums[right]==nums[right-1]) right--;while(right>left&&nums[left]==nums[left+1]) left++; left++;right--;}}}}return result;}
};
http://www.yayakq.cn/news/757458/

相关文章:

  • 营销型网站设计稿广州广告公司排行榜
  • 莞城网站制作编程网校
  • 河北省老区建设促进会网站什么是网络营销请举几个例子说明
  • 怎么看网站开发语言跨境电商怎么样
  • 湘潭商城网站建设定制网络公司最怕怎么投诉
  • 国内优秀的企业网站培训课
  • 网站的seo优化报告做美食分享网站源码
  • php与mysql网站开发全接触html简单广告代码
  • 门头沟网站建设德州网站建设哪家专业
  • 贵州省铜仁市住房和城乡建设局网站seo网络推广招聘
  • 包装纸箱公司怎么做网站杭州市建设工程招标
  • 三网合一网站建设系统 价格网站制作前必须做的事情有哪些
  • 珠海网站建设制作设计wordpress 编辑代码
  • 自建网站的步骤工程建设是指
  • 网站设计制作的服务和质量广州全网推广
  • 网站建设设计说明书做网站还有前景吗
  • 东营网站制作做旅行社的都是在哪网站拿票
  • 做那类网站赚钱阳春网站制作
  • 秦皇岛网站推广联系电话做企业网站需要提供什么资料
  • 重庆城乡建设网站杭州百度开户
  • 网站seo平台大连企业网站建设定制
  • 阳泉网站建设郑州公司建网站
  • 本地搭建多个网站网页设计与制作教程第六版第六章源代码
  • 重庆渝能建设集团有限公司网站游戏官网做的好的网站
  • 怎么做网站访问被拒绝推广普通话的宣传标语
  • 中小企业网站建设应该注意什么事项wordpress $数组
  • 上海网站 备案查询苏州网站建站
  • 网页游戏网站在线玩常熟网站建设公司
  • 彩票网站模板源码翻译网站建设
  • 网站大全正能量免费2020公司公众号怎么制作