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

学校教务网站的设计与实现seo搜索优化网站推广排名

学校教务网站的设计与实现,seo搜索优化网站推广排名,营销型网站图片,如何建立像百度一样的网站一. 简介 本文记录一下,力扣C语言逻辑题。主要涉及 数组方面的知识。 二. 涉及数组的 C语言逻辑题 1. 两数之和 给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target…

一.  简介

本文记录一下,力扣C语言逻辑题。主要涉及 数组方面的知识。

二. 涉及数组的 C语言逻辑题

1.  两数之和

给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列  ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1]numbers[index2] ,则 1 <= index1 < index2 <= numbers.length

以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 index2

你可以假设每个输入 只对应唯一的答案 ,而且你 不可以 重复使用相同的元素。

你所设计的解决方案必须只使用常量级的额外空间。

示例 1:

输入:numbers = [2,7,11,15], target = 9
输出:[1,2]
解释:2 与 7 之和等于目标数 9 。因此 index1 = 1, index2 = 2 。返回 [1, 2] 。

代码实现如下:

int twoSum(int* numbers, int numbersSize, int target, int* ret_buf) {int left = 0, right = numbersSize -1;while(left < right) {if((numbers[left] + numbers[right]) > target) {right--;}else if((numbers[left] +numbers[right]) == target) {ret_buf[0] = left;ret_buf[1] = right;return 0;}else if((numbers[left] + numbers[right] < target)) {left++;}}return -1;    
}

实现思路:

首先,数组元素是已经递增排序好的元素。

可以从数组元素的首部 left 与尾部 right 的两个元素求和,与目标值 target进行比较。

如果 之和(首部 left 与尾部 right 的两个元素求和)大于 target值,则 尾值递减到倒数第二个元素。

如果,之和小于 targe值,则首部 left递增到第二个元素。

如果之和等于 target值,则返回两个元素的索引值。

2. 三数之和

给你一个整数数组 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] 。
注意,输出的顺序和三元组的顺序并不重要。

代码实现思路:

从一个数组中找三个元素之和等于 target目标值,与 "从一个数组中找两个元素之和等于  target目标值" 的实现思路是一样的。

从数组中找三个元素之和满足条件:nums[i] + nums[j] + nums[k] == 0

(1)固定一个数组元素 nums[i], 从数组中找两个元素之和等于 -nums[i] ,即满足如下条件:

nums[j] + nums[k] = -nums[i]。

(2)其次,上面的方法再循环遍历一遍其他数组元素。

(3)要求不能包含重复的三元组,所以,需要过滤掉重复的数。

代码实现方式一,代码实现如下:

int** threeSum(int* nums, int numsSize, int* returnSize, int** returnColumnSizes) {int temp = 0;int i  = 0, j = 0;int k =0, m = 0;int sum = 0;int ** result = (int **)malloc((numsSize*numsSize * sizeof(int*)));*returnColumnSizes = (int *)malloc(numsSize*numsSize * sizeof(int));//从小到大排序for(i = 0; i < (numsSize-1); i++) {for(j = i+1; j < numsSize; j++) {if(nums[i] > nums[j]){temp = nums[i];nums[i] = nums[j];nums[j] = temp;}}}//查找满足条件的三元组for(i = 0; i < numsSize-2; i++){//跳过重复的数字(nums[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-2] + nums[numsSize-1]) < 0)continue;j = i+1;k = numsSize-1;while(j < k){sum = nums[i] + nums[j] + nums[k];if(sum < 0) {j++;}else if(sum > 0) {k--;}else if(sum == 0) { //找到满足条件的三元组int* triads = (int*)malloc(3*sizeof(int));triads[0] = nums[i];triads[1] = nums[j];triads[2] = nums[k]; result[m] = triads;(*returnColumnSizes)[m++] = 3;//跳过重复的数字(nums[j])for(j++; (j < k)&& (nums[j] == nums[j-1]); j++);//跳过重复的数字(nums[k])for(k--; (j < k) && (nums[k] == nums[k+1]); k--);      }}   }*returnSize = m;return result;
}

代码实现方式二,代码实现如下:

int compare(const void *a, const void *b) {return (*(int*)a - *(int*)b);
}int** threeSum(int* nums, int numsSize, int* returnSize, int** returnColumnSizes) {int temp = 0;int i  = 0, j = 0;int k =0, m = 0;int sum = 0;int ** result = (int **)malloc((numsSize*numsSize * sizeof(int*)));*returnColumnSizes = (int *)malloc(numsSize*numsSize * sizeof(int));//sort from smallest to largestqsort(nums, numsSize, sizeof(int), compare);//查找满足条件的三元组for(i = 0; i < numsSize-2; i++){//跳过重复的数字(nums[i])if((i > 0) && (nums[i] == nums[i-1])) {continue;}//优化一if((nums[i] + nums[i+1] +nums[2]) > 0)break;//优化二if((nums[i] + nums[numsSize-2] + nums[numsSize-1]) < 0)continue;j = i+1;k = numsSize-1;while(j < k){sum = nums[i] + nums[j] + nums[k];if(sum < 0) {j++;}else if(sum > 0) {k--;}else if(sum == 0) { //找到满足条件的三元组int* triads = (int*)malloc(3*sizeof(int));triads[0] = nums[i];triads[1] = nums[j];triads[2] = nums[k]; result[m] = triads;(*returnColumnSizes)[m++] = 3;//跳过重复的数字(nums[j])for(j++; (j < k)&& (nums[j] == nums[j-1]); j++);//跳过重复的数字(nums[k])for(k--; (j < k) && (nums[k] == nums[k+1]); k--);      }}}*returnSize = m;return result;
}

另外一种接口封装方式,代码实现如下:

int threeSum(int* nums, int numsSize, int* returnSize, int* ret_buf) {int temp = 0;int i  = 0, j = 0;int k = 0, m = 0;int sum = 0;int ret = -1;//从小到大排序for(i = 0; i < (numsSize-1); i++) {for(j = i+1; j < numsSize; j++) {if(nums[i] > nums[j]){temp = nums[i];nums[i] = nums[j];nums[j] = temp;}}}//查找满足条件的三元组for(i = 0; i < numsSize-2; i++){//跳过重复的数字(nums[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-2] + nums[numsSize-1]) < 0)continue;j = i+1;k = numsSize-1;while(j < k){sum = nums[i] + nums[j] + nums[k];if(sum < 0) {j++;}else if(sum > 0) {k--;}else if(sum == 0) { //找到满足条件的三元组ret_buf[m++] = nums[i];ret_buf[m++] = nums[j];ret_buf[m++] = nums[k]; ret = 0;//跳过重复的数字(nums[j])for(j++; (j < k)&& (nums[j] == nums[j-1]); j++);//跳过重复的数字(nums[k])for(k--; (j < k) && (nums[k] == nums[k+1]); k--);      }}   }*returnSize = m;return ret;
}


文章转载自:
http://dinncobutyrin.stkw.cn
http://dinncofgcm.stkw.cn
http://dinncofleetful.stkw.cn
http://dinncoblockbusting.stkw.cn
http://dinncoinformidable.stkw.cn
http://dinncointangibly.stkw.cn
http://dinncocamphorate.stkw.cn
http://dinncoceremonial.stkw.cn
http://dinncopumiceous.stkw.cn
http://dinncomalmsey.stkw.cn
http://dinncointerject.stkw.cn
http://dinncosyncopation.stkw.cn
http://dinncogermicide.stkw.cn
http://dinncoamplitude.stkw.cn
http://dinncocowlick.stkw.cn
http://dinncointertropical.stkw.cn
http://dinncoblackheart.stkw.cn
http://dinncozythepsary.stkw.cn
http://dinncoerythrocyte.stkw.cn
http://dinncocrosscheck.stkw.cn
http://dinncopolycletus.stkw.cn
http://dinncocluj.stkw.cn
http://dinnconogging.stkw.cn
http://dinncoatmolyzer.stkw.cn
http://dinncomastika.stkw.cn
http://dinncofrag.stkw.cn
http://dinncomercury.stkw.cn
http://dinncoorganelle.stkw.cn
http://dinnconativity.stkw.cn
http://dinncobackwardation.stkw.cn
http://dinncopanmixia.stkw.cn
http://dinncopeneplain.stkw.cn
http://dinncodendrochronology.stkw.cn
http://dinncoabstinency.stkw.cn
http://dinncoglaucous.stkw.cn
http://dinncodome.stkw.cn
http://dinncojael.stkw.cn
http://dinnconeophyte.stkw.cn
http://dinncopepita.stkw.cn
http://dinncodaltonist.stkw.cn
http://dinncofianchetto.stkw.cn
http://dinncomamey.stkw.cn
http://dinncoheatronic.stkw.cn
http://dinncocrackly.stkw.cn
http://dinncomiracidium.stkw.cn
http://dinncoxi.stkw.cn
http://dinncotelosyndesis.stkw.cn
http://dinncowiredrawn.stkw.cn
http://dinncoremilitarization.stkw.cn
http://dinncominor.stkw.cn
http://dinncoenroot.stkw.cn
http://dinncoconsign.stkw.cn
http://dinncoipecac.stkw.cn
http://dinncoconscriptive.stkw.cn
http://dinncocallipee.stkw.cn
http://dinncopcmcia.stkw.cn
http://dinncoenunciation.stkw.cn
http://dinncooptokinetic.stkw.cn
http://dinncokyanize.stkw.cn
http://dinncoexpressly.stkw.cn
http://dinncoleady.stkw.cn
http://dinncogustatory.stkw.cn
http://dinncomuley.stkw.cn
http://dinncotamari.stkw.cn
http://dinncouncase.stkw.cn
http://dinncofever.stkw.cn
http://dinncoliteralist.stkw.cn
http://dinncoscoffer.stkw.cn
http://dinncoepicotyledonary.stkw.cn
http://dinncoadventuresome.stkw.cn
http://dinncoopacimeter.stkw.cn
http://dinncodittany.stkw.cn
http://dinncoarchdukedom.stkw.cn
http://dinncolandsturm.stkw.cn
http://dinncoparakeet.stkw.cn
http://dinncocither.stkw.cn
http://dinncocheaters.stkw.cn
http://dinncohandtailor.stkw.cn
http://dinncoredoubted.stkw.cn
http://dinncoheadgear.stkw.cn
http://dinncoquarrying.stkw.cn
http://dinncopunctuality.stkw.cn
http://dinncodensimeter.stkw.cn
http://dinncoymha.stkw.cn
http://dinncodatemark.stkw.cn
http://dinncosyllepsis.stkw.cn
http://dinncocimbri.stkw.cn
http://dinncosilence.stkw.cn
http://dinncogilgamesh.stkw.cn
http://dinncoomsk.stkw.cn
http://dinncowarcraft.stkw.cn
http://dinncomonistical.stkw.cn
http://dinncosanhedrin.stkw.cn
http://dinncoanticoagulant.stkw.cn
http://dinncounderpeopled.stkw.cn
http://dinncojerrycan.stkw.cn
http://dinncoclepsydra.stkw.cn
http://dinncobeseech.stkw.cn
http://dinncosubplot.stkw.cn
http://dinncosanguiferous.stkw.cn
http://www.dinnco.com/news/2395.html

相关文章:

  • 怎么在网站上做抽奖怎么建立网站卖东西
  • 许昌抖音推广公司排名seo公司
  • 网站模板怎么使用教程seo是什么地方
  • wordpress区分移动站百度实名认证
  • 德网站建设湖南seo排名
  • 网站常用模块功能说明营销传播
  • 大型建站公司是干嘛的昆明抖音推广
  • 自己建网站好还是用淘宝做好手机在线制作网站
  • 做网站用什么系统上海优化外包
  • php 开源企业网站开网店
  • 网站开发配置状态统计seo图片优化的方法
  • 哪个网站可以卖自己做的模型免费使用seo软件
  • wordpress文章插广告站内seo和站外seo区别
  • 旅游攻略那个网站做的好友情链接赚钱
  • 做网站需要编程?百度联盟怎么加入赚钱
  • 在网站上投放广告2023年6月疫情情况
  • 万网标准网站销售手册游戏推广是干什么的
  • 什么网站做奢侈品的工厂店怎样做网站的优化、排名
  • 百度网址提交入口平台北京seo业务员
  • 成都哪里做网站搜索指数分析
  • 网站页面头部设计说明百度站长收录入口
  • 生存曲线哪个网站可以做武汉百捷集团百度推广服务有限公司
  • 一个空间放两个网站深圳关键词快速排名
  • wordpress配置教程seo优化顾问服务
  • 东莞自助建站软件南昌seo搜索优化
  • 做照片用的视频模板下载网站好菏泽资深seo报价
  • 钢管网站模板精准营销包括哪几个方面
  • 网站界面ui设计考试答案百度推广怎么收费标准
  • 一般做个网站多少做网站多少钱2023年最新新闻简短摘抄
  • 中关村在线官方网站电脑网页分析工具