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

樟木头的建网站公司找装修公司去哪个网站

樟木头的建网站公司,找装修公司去哪个网站,建行个人网上登录入口,WordPress如何加载SSL证书第十三章 三数之和四数之和 三数之和 力扣链接 根据题目要求: 返回的数对应的下标各不相同三个数之和等于0不可包含重复的三元组 – – 即顺序是不做要求的 如: [-1 0 1] 和 [0, 1, -1] 是同一个三元组输出答案顺序不做要求 暴力解法: 排序 3个for循环 去重 — — N^3, …

第十三章

  • 三数之和
  • 四数之和

三数之和

力扣链接

根据题目要求:

  1. 返回的数对应的下标各不相同
  2. 三个数之和等于0
  3. 不可包含重复的三元组 – – 即顺序是不做要求的
    如: [-1 0 1] 和 [0, 1, -1] 是同一个三元组
  4. 输出答案顺序不做要求

暴力解法: 排序 + 3个for循环 + 去重 — — N^3, 肯定超时
优化: 排序 + 双指针 + 去重 — — N^2
优化的具体思路:
固定一个数, 记作a; 在剩余的空间里面找和为 -a的两个数(由于是排好序的, 所以使用双指针)
去重有两种方法:
1.set去重
2 在循环内部缩小空间 — — 非常值得我们去尝试

  1. set去重
class Solution {
public:vector<vector<int>> threeSum(vector<int>& nums) {// 排序sort(nums.begin(), nums.end());// 记录结果vector<vector<int>> res; // 固定一个数 + 双指针int n = nums.size();for(int i = 0; i < n; i++) // 固定一个数{// 双指针优化int left = i+1, right = n-1;int targt = -nums[i];while(left < right){int sum = nums[left] + nums[right];if(sum < targt){left++;}else if(sum > targt){right--;}else{res.push_back({nums[i], nums[left], nums[right]});left++;right--;}}}// 去重set<vector<int>> result(res.begin(), res.end());res.clear();for(auto e : result){res.push_back(e);}return res;}
};


上面的运行结果太慢了, 我们尝试一下 缩小空间去重👇👇👇

  1. 缩小空间去重
class Solution {
public:vector<vector<int>> threeSum(vector<int>& nums) {// 排序sort(nums.begin(), nums.end());// 记录结果vector<vector<int>> res; // 固定一个数 + 双指针int n = nums.size();for(int i = 0; i < n;) // 固定一个数{// 双指针优化int left = i+1, right = n-1;int targt = -nums[i];while(left < right){int sum = nums[left] + nums[right];if(sum < targt){left++;}else if(sum > targt){right--;}else{res.push_back({nums[i], nums[left], nums[right]});left++;right--;// 去重left 和 rightwhile(left < right && nums[left] == nums[left-1])  left++;while(right > left && nums[right] == nums[right+1])  right--;}}// 去重ii++;while(i < n && nums[i] == nums[i-1])  i++;}return res;}
};



四数之和

力扣链接

这一题就跟上面的题目相似, 思路也很相似: 排序 + 固定两个数, 双指针优化 + 去重. 当然, 我们这里的去重逻辑也是 缩小空间去重

class Solution {
public:vector<vector<int>> fourSum(vector<int>& nums, int target) {sort(nums.begin(), nums.end());vector<vector<int>> res;int n = nums.size();// 选定一个数, 内部用三数之和for(int i = 0; i < n;){// 选定一个数, 内部使用双指针优化for(int j = i+1; j < n;){int left = j+1, right = n-1;long int tar = target - (long int)(nums[i]+nums[j]);while(left < right){long int cur = nums[left] + nums[right];if(cur < tar)  left++;else if(cur > tar)  right--;else{res.push_back({nums[i], nums[j], nums[left], nums[right]});left++, right--;// 去重left 和 rightwhile(left < right && nums[left] == nums[left-1])  left++;while(right > left && nums[right] == nums[right+1])  right--;}}// j的去重j++;while(j < n && nums[j] == nums[j-1])  j++;}// i的去重i++;while(i < n && nums[i] == nums[i-1])  i++;}return res;}
};


号令风霆迅,天声动北陬。
长驱渡河洛,直捣向燕幽。
马蹀阏氏血,旗袅可汗头。
归来报明主,恢复旧神州。 — — [宋] 岳飞 <送紫岩张先生北伐>

http://www.15wanjia.com/news/161427.html

相关文章:

  • 手机静态网站开发制作宿迁房产网新楼盘
  • 网站建设 通讯员国家反诈中心app下载二维码
  • 在网站开发中哪里需要js文件网站策划报告书怎么做
  • 企业网站建设的心得推广公众号平台的公司
  • 兰州电商平台网站建设网站建设要用到哪些应用工具
  • 企业网站建设应该怎么做wordpress微信支付购买课程
  • 手机网站模板下载免费wordpress typecho 大数据库
  • 国外中文网站排行榜单js 网站怎么做中英文
  • 商城型外贸网站建设wordpress怎么用Redis
  • 安徽省城乡住房建设厅网站贵阳网站建设企业
  • 怎么看网站是什么程序noren wordpress
  • 网站建设简介是什么建筑网官网查询
  • 邯郸做网站优化重庆网站开发建设
  • 个人网站我的大学我做主页面旅游网站开题报告
  • 关于域名用于非网站用途的承诺书50人办公室网络搭建
  • 桂林北站地址成都app开发解决方案
  • 如何做阿里详情页面链接到外部网站软件开发从入门到精通
  • 网站备案查询官网入口怎么做精准引流推广
  • 佛山外贸网站设计国美电器网上商城
  • 深圳送花网站哪个好旅游公司网站建设方案
  • 废橡胶网站建设智邦国际的crm系统
  • dw新建站点编程app用什么软件
  • ppt免费下载模板网站金华专业的网站建设
  • 网站赚钱小伟破解WordPress主题
  • 做旅游的网站 是什么风格济南谷歌推广
  • wordpress免费企业站主题怎么做公司的网站
  • 以绿色为主色调的网站网站建设需求文章
  • 文登做网站的公司sem优化是什么
  • 网站开发的背景视频怎样连接到wordpress
  • 网站建设试题卷wordpress主题设置导出