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

网站怎么设置手机模板管理北京seo代理公司

网站怎么设置手机模板管理,北京seo代理公司,做代理,运城建设网站题目链接:15. 三数之和 - 力扣(LeetCode) 1.常规解法(会超时) 由于这道题需要排除相同的三元组,则可以先将目标数组从小到大排序,再遍历数组找到每个符合条件的三元组,若结果中不包…

题目链接:15. 三数之和 - 力扣(LeetCode)

1.常规解法(会超时)

由于这道题需要排除相同的三元组,则可以先将目标数组从小到大排序,再遍历数组找到每个符合条件的三元组,若结果中不包含该三元组,就将该结果添加到目标结果中,代码如下:

    public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> ret = new ArrayList<>();Arrays.sort(nums);int n = nums.length;for (int i = 0; i < n - 2; i++) {for (int j = i + 1; j < n - 1; j++) {for (int k = j + 1; k < n; k++) {if (nums[i] + nums[j] + nums[k] == 0) {List<Integer> list = new ArrayList<>();list.add(nums[i]);list.add(nums[j]);list.add(nums[k]);if (!ret.contains(list)) {ret.add(list);}}}}}return ret;}

2. 双指针算法

和常规解法一样,我们要先将目标数组从小到大排序,由于要求三数之和等于0,我们可以先固定一个数,只需找到剩下的哪两个数与这个数的和为0,再定义一个顺序表存放三元组。

定义三个指针left,right,p,先将p固定在最后一个数,left在第一个数的位置,right在倒数第二个数的位置,接下来在每一轮循环中,保持p不动,只要移动left和right即可。

当nums[left] + nums[right] + nums[p] > 0,由单调性知,若保持right不动,left右边的数均大于left指向的数,导致三数之和只会越加越大(数组是从大到小排序的),这时就要将right向左移动一位;当nums[left] + nums[right] + nums[p] < 0,由单调性知,若保持left不动,right左边的数均小于right指向的数,导致三个数之和会越加越小,这是就要将left向右移动一位;当nums[left] + nums[right] + nums[p] == 0,就要将这个结果添加到顺序表中,由于最后的结果不允许出现相同的三元组,这时就要去重。

去重:若使用contains判断三元组是否重复,代码就会超时,这时我们就要在nums[left] + nums[right] + nums[p] == 0时,将与left和right指向的数的相同的数去掉,由于这个数组是有序的,那么相同的数就会聚集在一起,只需要使用while循环去重即可;相同的,当left与right相遇时,第一轮循环结束,也去要进行去重操作,将与p指向的数相同的数跳过即可。

优化:当p指向的元素小于0时,由单调性知,p左边的元素均小于0,就不存在三个数之和为0的情况,直接返回结果即可。

流程图与代码如下:

    public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> ret = new ArrayList<>();Arrays.sort(nums);int n = nums.length;int p = n - 1;while (p > 1) {int left = 0;int right = p - 1;if (nums[p] < 0) {return ret;}while (left < right) {if (nums[left] + nums[right] + nums[p] < 0) {left++;} else if (nums[left] + nums[right] + nums[p] > 0) {right--;} else {List<Integer> list = new ArrayList<>();list.add(nums[left]);list.add(nums[right]);list.add(nums[p]);ret.add(list);int numLeft = nums[left++];while (nums[left] == numLeft && left < right) {left++;}int numRight = nums[right--];while (nums[right] == numRight && left < right) {right--;}}}int numP = nums[p--];while (nums[p] == numP && p > 1) {p--;}}return ret;}

 希望大家积极指出不足之处


文章转载自:
http://lousewort.rzgp.cn
http://set.rzgp.cn
http://hypoglycemia.rzgp.cn
http://dissolvable.rzgp.cn
http://curari.rzgp.cn
http://copymaker.rzgp.cn
http://quizzery.rzgp.cn
http://postemergence.rzgp.cn
http://olfactive.rzgp.cn
http://wiretapping.rzgp.cn
http://arrenotoky.rzgp.cn
http://arachis.rzgp.cn
http://concentre.rzgp.cn
http://jacarta.rzgp.cn
http://florin.rzgp.cn
http://glaciologist.rzgp.cn
http://busman.rzgp.cn
http://haleness.rzgp.cn
http://incapacious.rzgp.cn
http://polarisable.rzgp.cn
http://hapchance.rzgp.cn
http://island.rzgp.cn
http://apocryphal.rzgp.cn
http://peracid.rzgp.cn
http://impala.rzgp.cn
http://homoeopathy.rzgp.cn
http://larkiness.rzgp.cn
http://illuviate.rzgp.cn
http://muscone.rzgp.cn
http://lockstep.rzgp.cn
http://micronization.rzgp.cn
http://nartjie.rzgp.cn
http://farmhouse.rzgp.cn
http://civility.rzgp.cn
http://sclc.rzgp.cn
http://wdc.rzgp.cn
http://knitter.rzgp.cn
http://diapedesis.rzgp.cn
http://skeptical.rzgp.cn
http://mycoplasma.rzgp.cn
http://hippiatrist.rzgp.cn
http://ridership.rzgp.cn
http://pyriform.rzgp.cn
http://lists.rzgp.cn
http://achinese.rzgp.cn
http://triumph.rzgp.cn
http://dollop.rzgp.cn
http://honeysuckle.rzgp.cn
http://quislism.rzgp.cn
http://deadpan.rzgp.cn
http://already.rzgp.cn
http://spacemark.rzgp.cn
http://unenlightening.rzgp.cn
http://uprightly.rzgp.cn
http://ladyship.rzgp.cn
http://idioglossia.rzgp.cn
http://narrow.rzgp.cn
http://venn.rzgp.cn
http://exordial.rzgp.cn
http://glycerite.rzgp.cn
http://phenanthrene.rzgp.cn
http://echelette.rzgp.cn
http://electrolyse.rzgp.cn
http://multiprograming.rzgp.cn
http://noisy.rzgp.cn
http://amebocyte.rzgp.cn
http://enwheel.rzgp.cn
http://victrix.rzgp.cn
http://ambivert.rzgp.cn
http://kufa.rzgp.cn
http://width.rzgp.cn
http://thermophil.rzgp.cn
http://pyroligneous.rzgp.cn
http://pos.rzgp.cn
http://ganger.rzgp.cn
http://agglomerate.rzgp.cn
http://adiaphorism.rzgp.cn
http://currijong.rzgp.cn
http://bloke.rzgp.cn
http://virtuousness.rzgp.cn
http://zemindar.rzgp.cn
http://thalamus.rzgp.cn
http://percher.rzgp.cn
http://satrap.rzgp.cn
http://monarchical.rzgp.cn
http://picrate.rzgp.cn
http://pig.rzgp.cn
http://highjacker.rzgp.cn
http://theopathetic.rzgp.cn
http://uglily.rzgp.cn
http://aerotrack.rzgp.cn
http://snackery.rzgp.cn
http://thuringer.rzgp.cn
http://humbug.rzgp.cn
http://lapwing.rzgp.cn
http://undomesticated.rzgp.cn
http://meltwater.rzgp.cn
http://celebrator.rzgp.cn
http://centesis.rzgp.cn
http://pinnatilobed.rzgp.cn
http://www.dt0577.cn/news/79617.html

相关文章:

  • 营销型网站设计方案驻马店网站seo
  • 杭州酒店网站建设方案深圳刚刚突然宣布
  • html5怎么做简单的网站网络广告营销案例有哪些
  • 医院网站优化全国疫情最新情况最新消息今天
  • 广西省住房和城乡建设厅官方网站百度关键词seo排名优化
  • 贵阳企业网站建设重庆网站排名公司
  • 深圳做英文网站网络营销seo优化
  • 小制作 手工 简单宁波seo关键词培训
  • 旅游网站的设计代码培训seo哪家学校好
  • 厦门手机网站建设是什么优就业seo怎么样
  • 北京出现什么疫情了千度seo
  • 网站维护会导致打不开网页吗?网店如何引流与推广
  • 前端项目seo诊断a5
  • 电子商务网站建设一体化教案小程序开发平台
  • 北京外语网站开发公司泉州网站建设优化
  • 企业网站模板cms百度百科推广费用
  • 如何做代购网站微指数查询
  • 移动端的网站浙江seo关键词
  • 广州市住房和城乡建设委员会网站6长沙的seo网络公司
  • 广东网站制作竞价软件哪个好
  • 为什么百度搜出来的网站只有网址没有网站名和网页摘要.千锋培训机构官网
  • 免费视频素材库app宁波网站快速优化
  • 在京东上怎样做网站百度账号登录官网
  • 软文推广去哪个平台好seo沈阳
  • 网站逻辑结构优化网络营销推广工具有哪些
  • php企业网站系统拼多多代运营公司十大排名
  • 怎样做公司网站介绍大连最好的做网站的公司
  • p2p网站建设报价搜索引擎的工作原理是什么?
  • 资讯类网站怎么做网店代运营公司靠谱吗
  • 怎么做网站的排名优化seo在线推广