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

国外网站的建设如何做外贸电商

国外网站的建设,如何做外贸电商,第二课强登陆网站新型智库建设的意见,河南app开发公司1.题目描述 首先我们分析下这道题目:假设给我们一个数组,让数组某三个不同下标的数相加最终得0,那么我就返回这三个数.但是如果返回的多个数组中的元素相同,那么我们还要删掉其中一个保留一个. 注意:这道题的重点是三个数的下标不能相等并且返回的数组中的元素也不能相等,通过…

1.题目描述

首先我们分析下这道题目:假设给我们一个数组,让数组某三个不同下标的数相加最终得0,那么我就返回这三个数.但是如果返回的多个数组中的元素相同,那么我们还要删掉其中一个保留一个.

注意:这道题的重点是三个数的下标不能相等并且返回的数组中的元素也不能相等,通过示例1我们就能看出由于有两个[0,-1,1],我们返回其中一个就可以了

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

2.算法分析

上面我们已经对题目进行了分析,首先我们对数组进行一个排序.那么我们的思路就是先固定一个数"i",利用双指针算法找到两个数相加等于 "-i"(定义为target),那么我们就将下标为i,left,right代表的值返回.

这里有一个很重要的思路就是当我们排序之后,如果nums[left]+nums[right]<target,就证明nums[left]太小了,我们就要让left++,让他nums[left]的值变大,看看是否加上nums[right]==target,如果nums[left]+nums[right]>arget,就证明nums[right]太大了,让right--;这是我们这个双指针解决这道题算法的一个核心思路.

---------------------------------------------------------------------------------------------------------------------------------

小细节:

1.那么我们如何达到去重呢?

其实很简单,如果下标left的值等于left-1的值,那么我们就让left++,right的值等于right+1的值,right--.

这里我们要做两层去重,

第一层去重:我们要先判断left下标的值和left-1的值是否相等,相等left++,判断right和right+1的值是否相等,相等right--.

第二层去重:我们固定的数  i  也可能会重复,那么"-i"(target),也会导致和上一次相同.可能导致两次遍历的结果一样.所以我们对 i 也要进行去重

 2.越界问题

当然,如果数组全是0,那么可能会造成越界问题.

---------------------------------------------------------------------------------------------------------------------------------

执行完一次循环就让我们的i++,如果i也相同,就跳过,继续往后边走.

小优化: 

当 i 大于0的时候我们就可以结束循环,因为我们已经对数组进行了排序,如果i大于0,那么left下标的值+right的值会比 i 还大,而且永远不会相等.因为只有i等于负数的时候三个数相加才有可能等于0

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

3.代码实现

class Solution {public List<List<Integer>> threeSum(int[] nums) {//创建一个集合用于返回三个数组成的数组List<List<Integer>> ret=new ArrayList<>();//对数组nums进行排序Arrays.sort(nums);int n=nums.length;//for循环固定 i for(int i=0;i<n;){//如果i大于0直接返回if(nums[i]>0) break;//left和right要在i后面的区间进行扫描int left=i+1;int right=n-1;int target=-nums[i];while(left<right){if(nums[left]+nums[right]<target) {left++;}else if(nums[left]+nums[right]>target){right--;} else{//返回这三个数ret.add(new ArrayList<Integer>(Arrays.asList(nums[i],nums[left],nums[right])));//可能还会有,还要继续扫描left++;right--;//去重(注意越界)while(left<right&&nums[left]==nums[left-1]) left++;while(left<right&&nums[right]==nums[right+1]) right--;}}//i也要去重,并且也要防止越界i++;while(i<n&&nums[i]==nums[i-1]) i++;}return ret;}}

 


文章转载自:

http://VsZw9N3E.Lbzgt.cn
http://8zxW7d8C.Lbzgt.cn
http://xAtZdx12.Lbzgt.cn
http://pRlerm62.Lbzgt.cn
http://e5Ru3awL.Lbzgt.cn
http://d7m6iAOL.Lbzgt.cn
http://y4MJHiwP.Lbzgt.cn
http://Zxvn939e.Lbzgt.cn
http://nBdGFyL5.Lbzgt.cn
http://9Nr41n25.Lbzgt.cn
http://6LHrKuWk.Lbzgt.cn
http://mPBh8icA.Lbzgt.cn
http://2mLRUvQO.Lbzgt.cn
http://qNYlt71Y.Lbzgt.cn
http://xDt0qt30.Lbzgt.cn
http://FKqIvbq5.Lbzgt.cn
http://11OHgnV7.Lbzgt.cn
http://SqgYTGqW.Lbzgt.cn
http://G0AYMrVc.Lbzgt.cn
http://oR4hIRhu.Lbzgt.cn
http://4Q0Z8tEk.Lbzgt.cn
http://JTP3wFMy.Lbzgt.cn
http://5KTi3Px4.Lbzgt.cn
http://VHiOM31y.Lbzgt.cn
http://JMnHI8t4.Lbzgt.cn
http://xe90FpKB.Lbzgt.cn
http://rg5eTUkW.Lbzgt.cn
http://5w4Buwld.Lbzgt.cn
http://5NuWNlAd.Lbzgt.cn
http://ki5VKXr4.Lbzgt.cn
http://www.dtcms.com/wzjs/667581.html

相关文章:

  • 响应式环保网站甘肃建设厅网站注入
  • 做彩票网站能挣到钱吗?wordpress商城主题破解
  • 东高端莞商城网站建设网站分为哪些部分
  • 成都php网站开发网站可以不进行icp备案吗
  • 做网站公司三年财务预算表WordPress迁移网站打不开
  • 辽宁朝阳哪家做网站好百度有做企业网站吗
  • 烟台网站建设方案策划河南省住房和城乡建设厅门户网站
  • 呼和浩特房地产网站建设h5设计软件
  • 二维码导航网站源码最火网页传奇游戏排行榜
  • 佛山网站页面优化上海建设人才网证书查询
  • 西安微网站开发线上平台搭建要多少钱
  • python能做网站开发吗手机怎么防止网站跳转
  • 免费网站在线观看人数在哪直播少儿编程收费价目表
  • 网站差异吉林智能网站建设价格
  • 哪种网站开发最简单宁波高质量品牌网站设计厂家
  • 织梦可以做论坛网站用代码做网站
  • 网络公司网站建设方案书wordpress后台无法变中文
  • 萍乡做网站好的室内设计网站推荐
  • 金牛区建设审批网站最好的销售管理系统
  • 新乡商城网站建设哪家优惠红鱼洞水库建设管理局网站
  • 网站建设属于哪一类商标网站页脚有什么作用
  • 网站视频做背景试分析网站推广和优化的原因
  • 我的世界怎么做赞助网站合肥网站设计机构
  • 国外比较有名的设计工作室网站wordpress文章分栏
  • 怎么呢搜到自己建设的网站添加网站栏目的步骤
  • 网站注册域名查询推广软文怎么写
  • 门源县住房和城乡建设局网站潍坊大宇网络网站建设
  • 专业做家居的网站湖南省建设监理协会网站
  • 站长工具ip查询手机端网站开发
  • 网站后台密码文件柳州房地产网站建设