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

旅游网站的建设现状苏州市城乡建设局网站首页

旅游网站的建设现状,苏州市城乡建设局网站首页,齐河专业企业网站建设,北京公司注册地址要求给你一个整数数组 nums #xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k #xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 答案中不可以包含重复的三元组。 示例 1#xff1a; 输入…给你一个整数数组 nums 判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! 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] 。 解析 先对数组排序设一非递减的数组示例和初始三指针位置及名字如下所示。 固定i即可转换为寻找满足 nums[l]nums[r]−nums[i] 的三元组因为不能包含重复的三元组以下两个三元组只能取一个而后我们再考虑其是否满足 nums[l]nums[r]−nums[i]。 移动指针的时候需要规避连续的重复元素 class Solution { public:vectorvectorint threeSum(vectorint nums) {//排序c// 待返回的三元组vectorvectorint triples;for(int i 0; i nums.size(); i){// 检测重复的 nums[i]if(i 0 nums[i] nums[i-1]) continue;int l i 1;int r nums.size() - 1;while(l r) {// 检测重复的 nums[l] 并防止越界while(l i 1 l nums.size() nums[l] nums[l-1]) l;// 检测重复的 nums[r] 并防止越界while(r nums.size() - 1 r i nums[r] nums[r1]) r--;// 防止 l, r 错位if(l r) break;if(nums[i] nums[l] nums[r] 0) r--;else if(nums[i] nums[l] nums[r] 0) l;else {// nums[l] nums[r] nums[i], 三元组符合添加入结果triples.push_back({nums[i], nums[l], nums[r]});l; r--;}}}return triples;} }; int cmp(const void* pa, const void* pb){int a*(int*)pa;int b*(int*)pb;return ab?1:-1; } int** threeSum(int* nums, int numsSize, int* returnSize, int** returnColumnSizes){int base100;//数组的初始长度可更改//初始化处理返回值二维数组的大小和保存每一个一维数组大小的数组的空间保持一致int** res(int**)malloc(sizeof(int*)*base);*returnColumnSizes(int*)malloc(sizeof(int)*base);*returnSize0;int i,j,k;//排序qsort(nums,numsSize,sizeof(int),cmp);for(i0;inumsSize;i){//先确定第三个数的值再对剩下的两个数进行两数之和的操作//若本次的第三个数与上一次的情况相同则跳过这个数if(i0nums[i]nums[i-1])continue;//给定nums[i]以jk作为双指针进行两数之和操作ji1;knumsSize-1;while(jk){int sumnums[i]nums[j]nums[k];if(sum0){//刚好遇见符合要求的三元组//申请返回值二维数组的空间res[*returnSize](int*)malloc(sizeof(int)*3);//每一个数组大小都为3(*returnColumnSizes)[*returnSize]3;//给申请的空间赋值res[*returnSize][0]nums[i];res[*returnSize][1]nums[j];res[*returnSize][2]nums[k];//二维数组的行数加1(*returnSize);//如果二维数组的大小达到初始设定的行数则进行空间扩容if(*returnSizebase){base*2;res(int**)realloc(res,sizeof(int*)*base);*returnColumnSizes(int*)realloc(*returnColumnSizes,sizeof(int)*base);}//记录符合要求的两个数进行去重int num1nums[j],num2nums[k];while(nums[j]num1jk)j;while(nums[k]num2jk)k--;}//若三个数之和小于0则左边的指针右移else if(sum0)j;//若三个数的之和大于0则右边的指针往左移else k--;}}return res; }
http://www.ho-use.cn/article/10813843.html

相关文章:

  • 怎么在自己做网站网站安全建设架构
  • 商品网站建设实验报告子域名查询工具
  • 成都网站优化常识总部在上海的世界500强企业
  • 创建网站快捷方式到桌面oa办公管理系统哪个好
  • 怎么做相册的网站网站建设价格套餐
  • 阿里云个人网站制作湛江网站建设方案报价
  • 新乡高端网站建设北京seo教师
  • 天津建站模板网站模板展示
  • 网站开发维护求职信淘宝电子网站建设论文
  • 合适的网站建设明细报价表wordpress官方空间
  • 内蒙古网站建设熊掌号wordpress 伪静态500
  • 濮阳免费网站制作中国建筑工程网施工资料
  • 部门网站建设管理报告提供商城网站
  • 浅谈学校网站建设一个可以做行程的网站
  • 搜房网网站跳出率临沧网站建设公司招聘
  • 鹿泉城乡建设局网站网站单子
  • 中小学建设网站同一人可以做几个网站的负责人
  • 军博网站建设怎么用小程序做微网站
  • 龙城网站建设网站建设的现状分析
  • 十万pv的网站建设北京托管网站
  • 建设网站和推广知名网站开发公司
  • 包头市建设厅官方网站吉林市网站建设招标
  • 完成一份网站建设前期规划方案网站和微信公众号建设方案
  • 网站使用手册楚雄做网站
  • 网站报名怎么做热点链接到另一个网站怎么做
  • 网站开发基本过程前端网页模板下载
  • 百度做的网站后台怎么进广告联盟网站建设
  • 胶州做网站珠海专业做网站的公司
  • 大兴安岭地网站seo什么网站有加工外发做的
  • 浦江做网站怎么做虚拟币网站