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

网站建设策划方案企业网站有哪些功能

网站建设策划方案,企业网站有哪些功能,承接政府网站建设,分公司注册流程及需要的材料15. 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组…

15. 三数之和

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != ji != kj != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请你返回所有和为 0 且不重复的三元组。

注意:答案中不可以包含重复的三元组。

示例 1:

输入:nums = [-1,0,1,2,-1,-4]
输出:[[-1,-1,2],[-1,0,1]]
解释:
nums[0] + nums[1] + nums[2] = (-1) + 0 + 1 = 0 。
nums[1] + nums[2] + nums[4] = 0 + 1 + (-1) = 0 。
nums[0] + nums[3] + nums[4] = (-1) + 2 + (-1) = 0 。
不同的三元组是 [-1,0,1] 和 [-1,-1,2] 。
注意,输出的顺序和三元组的顺序并不重要。

示例 2:

输入:nums = [0,1,1]
输出:[]
解释:唯一可能的三元组和不为 0 。

示例 3:

输入:nums = [0,0,0]
输出:[[0,0,0]]
解释:唯一可能的三元组和为 0 。

首先利用双指针思想进行寻找合适的三个数,再利用set进行去重。

class Solution {
public:vector<vector<int>> threeSum(vector<int>& nums) {int n = nums.size();set<vector<int>> res;sort(nums.begin(), nums.end());for(int i = n-1; i > 1; i--){int c = nums[i];int temp = 0-c;int left = 0, right = i-1;while(left < right){if(nums[left] + nums[right] < temp)left++;else if(nums[left] + nums[right] > temp)right--;else{res.insert({nums[left], nums[right], c});left++;}}}vector<vector<int>> ret;for(auto it : res){ret.push_back(it);}return ret;}
};

离谱……………………

对于去重的方法有进一步优化

 将c从右向左固定:

class Solution {
public:vector<vector<int>> threeSum(vector<int>& nums) {int n = nums.size();vector<vector<int>> ret;sort(nums.begin(), nums.end());    1、排序for(int i = n-1; i > 1; ){int c = nums[i];int temp = 0-c;int left = 0, right = i-1;while(left < right)  2、此处使用双指针思想{if(nums[left] + nums[right] < temp)left++;else if(nums[left] + nums[right] > temp)right--;else{ret.push_back({nums[left], nums[right], c});int flag = nums[left++];while(left<right && nums[left] == flag)   left++;        3、对于去重操作的优化①flag = nums[right--];while(left<right && nums[right] == flag)right--;}}i--;                       4、去重的优化②while(i>1 && nums[i+1] == nums[i]) // 把whlie写错成if调试半天才发现i--;}return ret;}
};

将c从左向右固定

class Solution {
public:vector<vector<int>> threeSum(vector<int>& nums) {int n = nums.size();sort(nums.begin(), nums.end());    // 1、排序vector<vector<int>> ret;for(int i = 0; i < n; ){if(nums[i] > 0) break;    // 2、作一个小优化,如果左边数大于零则无法满足和为0int left = i+1, right = n-1;int target = -nums[i];while(left < right)        // 3、双指针进行寻找{int sum = nums[left] + nums[right];if(sum < target)    left++;else if(sum > target)   right--;else{ret.push_back({nums[i], nums[left++], nums[right--]});while(left < right && nums[left] == nums[left-1])left++; // 当left位置重复时,left后移while(left < right && nums[right] == nums[right+1])right--; // 当right位置重复时,right左移}}i++;while(i < n && nums[i]==nums[i-1])i++;}return ret;}
};

http://www.zhongyajixie.com/news/51582.html

相关文章:

  • 网站服务器 重启网站模板之家官网
  • 网站做外国生意石家庄网络营销网站推广
  • 2017做电商做什么网站自己在家怎么做跨境电商
  • 网站备案幕布品牌seo主要做什么
  • 做公司网站别人能看到吗6网站为什么要seo
  • 全flash网站欣赏如何开通网站
  • 做数学ppt工具的网站广州网站优化排名系统
  • wordpress怎么找到作者的分类标签游戏优化
  • 中国空间站完整图产品网络推广深圳
  • 南通高端网站建设机构谷歌推广哪家好
  • 广告网站建设流程如何优化百度seo排名
  • 教育培训门户网站源码如何推销产品给客户
  • 什么行业必须做网站辽阳网站seo
  • 网站开发都是模板今天的新闻是什么
  • 网站建设的合理建议搜索关键词然后排名怎样提升
  • 如何做网站系统上海网络推广外包
  • 杭州公司网站域名续费全国31省市疫情最新消息今天
  • 外贸网站建设价格广州中小企业seo推广运营
  • 做百度糯米网站的团队搭建网站
  • 报告文学成都做整站优化
  • 网站建设的解决方案百度联盟
  • soho做网站多少钱网址导航怎样推广
  • 淘宝类网站开发查询网站备案信息
  • 关于网站建设的故事b2b自动发布信息软件
  • 什么网站可以做长图哈尔滨seo网络推广
  • 百度不让访问危险网站怎么办宁波seo网站服务
  • 成品网站源码下载网站seo哪家做的好
  • 怎么屏蔽ip段访问网站网络营销论文题目
  • python 自己做网站网页制作
  • 室内设计可以做网站吗百度竞价推广计划