当前位置: 首页 > 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.yayakq.cn/news/192440/

相关文章:

  • 运城市做网站服务专业公司网站建设服务
  • 自己如何注册网站网站如何做优化
  • html5快速建站重庆网站关键词推广
  • 深圳网站关键词优化公司南通的网站建设
  • 养殖网站模版网站备案要多久时间
  • 网站建设费计入哪个二级科目贵州整站优化seo平台
  • 网站建设服务收费标准做个普通的网站在上海做要多少钱
  • 学校网站开发背景p2p贷款网站制作
  • 网站开发主要框架 后端建设厅官方网站
  • 东莞东城网站建设wordpress新闻发布时间
  • 长沙简单的网站建设公司文山专业网站建设
  • 网站开发ssh做网站软文怎么弄
  • 铁岭市做网站网站首页代码在哪里
  • 网站开发按前端后端分解狼们求个没封的免费网站
  • 怎么建设网站阿里云吴江建设局网站
  • 电商网站模块设计京东可以免费做特效的网站
  • app手机电视网站设计方案wordpress对接微信登录
  • 马关网站建设网站做后怎么可以在百度搜索到
  • 怎样购买网站程序百度网站搜索排名
  • 酷家乐网站做墙裙教程怎么知道一个网站是哪家公司做的
  • C2C电子商务网站管理系统给我免费观看片在线
  • 网站建设需要注意的问题用手机做免费自助网站
  • 做网站服务器配置怎么选做个普通的网站多少钱
  • 网站做软件有哪些内容移动无线宽带怎么续费
  • 贵港网站推广有没有网站开发团队
  • 百度网盟网站有哪些ftp服务器上传不了wordpress
  • .net 网站优化网站制作需要哪些东西
  • 泉州建设网站制作南京建设网站企业
  • 七彩建设发展有限公司官方网站上海关键词优化推荐
  • 福州做网站优化腾讯云做网站选哪个