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

网站建设与维护教学课件深圳建站网站

网站建设与维护教学课件,深圳建站网站,接网站做项目赚钱吗,自己的电脑做网站服务器吗两数之和 II - 输入有序数组 两数之和 II - 输入有序数组-力扣 思路: 因为该数组是非递减顺序排列,因此可以设两个左右下标当左右下标的数相加大于target时,则表示右下标的数字过大,因此将右下标 - -当左右下标的数相加小于targ…

两数之和 II - 输入有序数组

两数之和 II - 输入有序数组-力扣

在这里插入图片描述
思路:

  1. 因为该数组是非递减顺序排列,因此可以设两个左右下标
  2. 当左右下标的数相加大于target时,则表示右下标的数字过大,因此将右下标 - -
  3. 当左右下标的数相加小于target时,则表示左下标的数字过小,因此将左下标 + +
  4. 当相等时,则将左右下标赋值给动态开辟的数组,并返回(注意左右下标要+1)
int* twoSum(int* numbers, int numbersSize, int target, int* returnSize) {int* ret=(int*)malloc(sizeof(int)*2);*returnSize=2;int left =0,right=numbersSize-1;while(left < right){if(numbers[left] + numbers[right] == target){ret[0]=left+1;ret[1]=right+1;return ret;}else if(numbers[left] + numbers[right] > target){right--;}else{left++;}}return ret;
}

在这里插入图片描述

三数之和

三数之和-力扣
在这里插入图片描述
思路来源:灵茶山艾府

  1. 将数组进行排序
  2. 将三个数分为两组,第一个数一组,第二三个数的和分为一组,这样思路就和上一题的两数相加相同了
  3. 当第一个数存在重复时,需要continue从而跳到最后一个重复的数
  4. 再对后两个数进行判断,思路同第一题

这题存在两个能够进行优化的地方:

  1. 当三个连续数字相加大于0时,则不存在和为0的数字,可以直接break退出循环(因为数组是有序的)
  2. 当一个数和最后两个最大的数字之和小于0,则该数字不可能存在为0的情况,直接continue进入下一个数字的判断即可
int cmp(const void* a, const void* b){return *(int*)a-*(int*)b;}int** threeSum(int* nums, int numsSize, int* returnSize, int** returnColumnSizes) {qsort(nums,numsSize,sizeof(int),cmp);int** ret=(int**)malloc(sizeof(int*)*numsSize*numsSize);*returnColumnSizes=(int*)malloc(sizeof(int)*numsSize*numsSize);int m=0;for(int i=0;i<numsSize-2;i++){//跳过重复数字if(i > 0 && nums[i] == nums[i-1])continue;if(nums[i] + nums[i+1] + nums[i+2] > 0)break;//优化一if(nums[i] + nums[numsSize-1] + nums[numsSize-2] < 0)continue;//优化二int j=i+1;int k=numsSize-1;while(j < k){if(nums[i] + nums[j] + nums[k] > 0)k--;else if(nums[i] + nums[j] + nums[k] < 0)j++;else{//添加三元组int* arr=(int*)malloc(sizeof(int)*3);arr[0]=nums[i];arr[1]=nums[j];arr[2]=nums[k];ret[m]=arr;(*returnColumnSizes)[m++]=3;//跳过重复数字for(j++;j < k && nums[j] == nums[j-1];j++);for(k--;k > j && nums[k] == nums[k+1];k--);}}}*returnSize=m;return ret;
}

在这里插入图片描述

最接近的三数之和

最接近的三数之和-力扣
在这里插入图片描述
思路同第二题类似

int cmp(const void* a,const void* b) 
{return *(int*)a-*(int*)b;
}int threeSumClosest(int* nums, int numsSize, int target) {qsort(nums,numsSize,sizeof(int),cmp);int sum=nums[0]+nums[1]+nums[2];for(int i=0;i<numsSize-2;i++){int j=i+1;int k=numsSize-1;while(j < k){int tmp=nums[i]+nums[j]+nums[k];if(abs(tmp-target) < abs(sum-target))sum=tmp;if(tmp > target)k--;else if(tmp < target)j++;elsereturn sum;}}return sum;
}

在这里插入图片描述

http://www.yayakq.cn/news/917050/

相关文章:

  • 宁波网站制作与推广价格模板之家网页模板下载
  • 上海免费网站建设服务给你一个网站seo如何做
  • 单招网是哪个网站制作公司做的辽宁网站建设平台
  • 网站外连最新新闻事件今天国内大事2022
  • 宁波模板建站多少钱网页微信授权登录
  • 仪器网站模版有什么网站可以发布个人信息
  • 网站开发维护求职信阳曲网站建设价格多少
  • 中国空间站拒绝10国名单加强网站信息内容建设管理
  • 建筑公司网站作用深圳建立网站公司网站
  • 网站首页包括哪些内容全网关键词云怎么查
  • 自己网站做搜索引擎优化深圳汇网网站建设
  • 建站平台免代码wordpress调用外部数据库
  • 网站标题在哪里修改紫金论坛最新新闻事件
  • 网站搭建平台都有哪些性价比高的广州网站建设
  • 响应式网站的好处ajax网站开发技术
  • 网站开发组合 lamp网站推荐男生正能量2021
  • 网站建设项目申请Wordpress制作一个时间轴
  • 深圳企业培训在线排名优化
  • ASP.NET网站建设实战湖南长沙现在能去吗
  • led设计网站建设软件开发工具的基础是
  • 怎么提高网站浏览量在家里组一个服务器做网站
  • 国外创意网站设计欣赏一个网站开发需要多久
  • 杨浦网站建设公司上海 网站备案拍照
  • 深圳市企业网站建设价格网站建设丶金手指花总12
  • 网站页面设计招聘网站设计与网页设计的区别
  • 苏州做网站的专业公司有哪些dw建设的网站怎么看
  • 网站建设管理 优帮云网址大全下载安装
  • 个人建站建设如何做自己的淘宝客网站
  • 网站建设业务员转换大设计网站需要用到哪些技术
  • 有关网站建设的外文文献平台网站怎么做的好