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

佛山建网站定制百度官方免费下载安装

佛山建网站定制,百度官方免费下载安装,深圳全网营销型网站,长沙网站拓谋网络18. 四数之和 原题链接:完成情况:解题思路:参考代码:错误经验吸取 原题链接: 18. 四数之和 https://leetcode.cn/problems/4sum/description/ 完成情况: 解题思路: /** * //HashMap只能记录…

18. 四数之和

  • 原题链接:
  • 完成情况:
  • 解题思路:
  • 参考代码:
  • 错误经验吸取

原题链接:

18. 四数之和
https://leetcode.cn/problems/4sum/description/

完成情况:

在这里插入图片描述

解题思路:

/**
* //HashMap只能记录key,value的结果
* //而不能记录产生这个结果的过程
*
* @param nums
* @param target
* @return
*/

思路全在代码注释里

参考代码:

package LeetCode算法题;import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;public class __18四数之和 {/***         //HashMap只能记录key,value的结果*         //而不能记录产生这个结果的过程** @param nums* @param target* @return*/public List<List<Integer>> fourSum(int[] nums, int target) {//参考之前的三数求和,以及四数直接结果求和,//难道是构造两两的两对,然后一个两对的集合,去和另外两个数去判断???List<List<Integer>> res = new ArrayList<List<Integer>>();int len = nums.length;if (nums == null || len < 4){return res;}Arrays.sort(nums);  //初始先将所有元素排好序,这样可以避免混乱的找要求数字for (int i=0;i<len-3;i++){if (i>0 && nums[i] == nums[i-1]){   //从第二个数开始判断continue;       //并且去重}//取完重复之后,固定一个点,剩下指针指向三个节点//然后进行左右判断if ((long)nums[i] + nums[i + 3] + nums[i + 2] + nums[i+1] > target){break;      //如果最左边四个数还比target大,那么说明已经没有数满足target了。}if ((long)nums[i] + nums[len - 3] + nums[len - 2] + nums[len-1] < target){//nums[i] + nums[len - 3] + nums[len - 2] + nums[len-1]continue;   //+最大的三个数,如果还小于的话,那么说明nums[i]还可以左走}/*int Left = i+1,Right = len -1;while (Left < Right){同三个数比大小,但这里是四个数,因此还剩三个数,所以需要指出三个指针*/for (int j = i+1;j<len-2;j++){if (j>i+1 && nums[j] == nums[j-1]){     //继续去重continue;}if ((long)nums[i] + nums[j] + nums[j+1] + nums[j+2] > target){//如果头四个数大于targetbreak;}if ((long)nums[i] + nums[j] + nums[len-2]+nums[len - 1] < target){//如果定了指针的左边两个数 + 右边的两个数   小于targetcontinue;   //说明左边的数,小了}/*int Left = i+1,Right = len -1;while (Left < Right){同三个数比大小,但这里是四个数,因此还剩三个数,所以需要指出三个指针*///然后仿照三个数比大小,锁定left,right去模仿移动//此时的指针,分别是i,j,left,rightint left = j+1,right = len - 1;while (left < right){long sum = (long)nums[i] + nums[j] + nums[left] + nums[right];if (sum == target){res.add(Arrays.asList(nums[i],nums[j],nums[left],nums[right]));while (left<right && nums[left] == nums[left+1]){left++;}left++;while (left < right && nums[right] == nums[right-1]){right--;}right--;}else if (sum<target) { //左边小了left++;}else {     //右边大了right--;}}}}return res;}
}

错误经验吸取

http://www.hkea.cn/news/772643/

相关文章:

  • 甘肃省住房城乡建设厅网站首页智能建站模板
  • 智能科技网站模板下载地址百度学术论文查重
  • 网站要怎么做才能让360收录推广品牌的策划方案
  • 做网站前景营销课程培训视频
  • 青海做网站广告开户南京seo
  • wordpress写软文赚钱seo快速培训
  • 南宁网站建设接单陕西省人民政府
  • wordpress网站价格seo域名综合查询
  • 支付网站怎么做的网络自动推广软件
  • js做网站统计品牌关键词优化
  • 微信公众号管理平台官网谷歌seo建站
  • 鲜花购物网站源码企业网站营销的优缺点
  • 表白网站制作在线日照网站优化公司
  • 企业网站建设策划书 前言徐州关键词优化排名
  • 一级a做爰片视频网站全国新闻媒体发稿平台
  • 唐山网站建设哪家专业高德北斗导航
  • wordpress 地址 .html企业网站seo贵不贵
  • 提供网站制作公司哪家好网络软文范文
  • 做原型网站枣庄网络推广seo
  • 品牌网站开发设计外贸网站平台
  • 网站做留言板网站推广在线
  • 长春服务好的网络营销seo网站推广的主要目的
  • 搜索引擎优化和关键词竞价广告的区别宿州百度seo排名软件
  • 一搜同志网站建设电话青岛网站seo优化
  • 官方做任务网站网络营销公司注册找哪家
  • django做视频网站网络营销推广专家
  • 国外手做网站搜索引擎推广的关键词
  • 网站建设商标注册多少类目域名注册免费
  • 哪里有网站设计公司长沙网络公司最新消息
  • 试描述一下网站建设的基本流程百度怎么发布短视频