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

建商城网站网站建设的素材

建商城网站,网站建设的素材,深圳龙华房价2022最新房价,成都门户网站建设公司454.四数相加II 题目链接 | 文档讲解 |视频讲解 : 链接 1.思路: 0.定义一个count,计算最终出现的次数 1.先遍历nums1和nums2,求出两者的和,map的key是和,value是出现的次数 2.再遍历nums3和nums4,求出0-两者的和 3…

454.四数相加II

题目链接 | 文档讲解 |视频讲解 : 链接

 1.思路:
  • 0.定义一个count,计算最终出现的次数

  • 1.先遍历nums1和nums2,求出两者的和,map的key是和,value是出现的次数

  • 2.再遍历nums3和nums4,求出0-两者的和

  • 3.判断map集合中是否出现 0-两者的和,出现过count+map的value值,否则为count+0

【注】不能是count++,因为在记录nums1和nums2,[1,2] [2,1] key=3的出现过2次,value存的是2,count+的是value值
 2.代码:
 public  int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {int count=0;Map<Integer,Integer> map=new HashMap<>();//key是 nums1[i]+nums[j]的值  value是出现的次数for (int a : nums1) {for (int b : nums2) {
//                if(map.containsKey(a+b)){
//                    map.put(a+b,map.get(a+b)+1);
//                }else {
//                    map.put(a+b,1);
//                }//使用map.getOrDefault()方法,无需在if判断,不存在,value为默认值0,存在则获取对应的值map.put(a+b,map.getOrDefault(a+b,0)+1);}}for (int c : nums3) {for (int d : nums4) {
//                if(map.containsKey(0-c-d)){
//                    count+=map.get(0-c-d);
//                }count+=map.getOrDefault(0-c-d,0);}}return count;}

15. 三数之和

题目链接 | 文档讲解 |视频讲解:链接

 1.思路:
  • 1.先排序,第一个元素>0,直接返回空集合

  • 2.使用for循环+双指针, 初始时左指针指向第二个元素,右指针指向最后一个元素

  • 3.去重操作,for循环的当前元素和上一个元素相等,continue eg: -1 -1 0 1 避免出现重复的三元数组 2个[-1 0 1]

  • 4.循环判断条件,左右指针不能相等,因为求是3个元素相加和,相等成了2个元素的和,判断三数之和num ,num>0,right--, num<0,left++ , num==0,收集三元数组,left++ right--        【注】==0时,去重判断,left和left-1是否相等,right和right+1是否相等,避免出现 -1 0 0 1 1 ,2个[-1 0 1]

 2.代码:
 public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> result=new ArrayList();//1.排序Arrays.sort(nums);for (int i = 0; i < nums.length; i++) {//第一个元素大于0,就不会出现和为0的数组了if(nums[i]>0){return result;}//三元数组不能重复,eg: -1 -1 0 1// 第一次循环 i指向第一个-1,得出了三元数组[-1 0 1]// 第二次循环  i指向第二个-1,再次得出了三元数组[-1 0 1],与题目要求不符,所以在这里要进行去重判断//为什么不是和其下一个元素进行比较,而是和当前元素的前一个比较呢?if(i>0 && nums[i]==nums[i-1]){continue;}int left=i+1;int right=nums.length-1;while (left<right){int num=nums[i]+nums[left]+nums[right];//num>0,说明right需要变小if(num>0){right--;}//num>0,说明left需要变大if(num<0){left++;}if(num==0){List<Integer> list=new ArrayList<>();list.add(nums[i]);list.add(nums[left]);list.add(nums[right]);result.add(list);left++;right--;//因为left在上面已经+1,,所以需要与其前一个元素进行比较//避免出现-2 0 0 1 2 2  避免出现2个 [-2,0,2]while (left<right && nums[left]==nums[left-1]){left++;}//因为right在上面已经-1,所以需要与其后面一个元素进行比较while (left<right && nums[right]==nums[right+1]){right--;}}}}return  result;}

18. 四数之和

题目链接 | 文档讲解 |视频讲解:链接

 1.思路:
  •  排序 

  • 2层for循环+双指针

  •  第一层for循环:判断nums[i]>0 && nums[i]>target,返回空集合。必须判断nums[i]>0,因为如果是负数,会出现 [-5,-1 ,0 ,0] target= -6 ,判断当前元素和其上一个元素是否相等,相等,continue,退出本次循环

  • 第二层for循环:nums[i]+nums[j]>0 && nums[i]+nums[j]>target,break,退到上一层循环,避免出现 [-5,-1 ,0 ,1] target=-7 , 判断当前元素和其上一个元素是否相等,相等,continue,退出本次循环

  •  while循环,左右指针的移动柜规则同三数之和,在这里不做赘述

 2.代码:
 public  List<List<Integer>> fourSum(int[] nums, int target) {List<List<Integer>> result =new ArrayList<>();//1.排序Arrays.sort(nums);//2层for循环+双指针for (int i = 0; i < nums.length; i++) {// 【注】:不能直接判断nums[i]>target 避免出现 [-5,-1 ,0 ,0]  target= -6  -5>-6但是会出现符合条件的四元数组,//数组中存在负数,是有可能会越加越小的if(nums[i]>0 && nums[i]>target){return  result;}//一级去重if(i>0 && nums[i]==nums[i-1]){continue;}for (int j = i+1; j < nums.length; j++) {// 【注】:不能直接判断nums[i]+nums[j]>target,避免出现 [-5,-1 ,0 ,1]  target=-7  -5+(-1)>-7 但是会出现符合条件的四元数组if(nums[i]+nums[j]>0 && nums[i]+nums[j]>target){break;}//二级去重if(j>i+1 && nums[j]==nums[j-1]){continue;}int left=j+1;int right=nums.length-1;//下面同三元数组之和while (left<right){int num=nums[i]+nums[j]+nums[left]+nums[right];if(num>target){right--;}if(num<target){left++;}if(num==target){List<Integer> list=new ArrayList<>();list.add(nums[i]);list.add(nums[j]);list.add(nums[left]);list.add(nums[right]);result.add(list);left++;right--;while (left<right && nums[left]==nums[left-1]){left++;}while (left<right && nums[right]==nums[right+1]){right--;}}}}}return  result;}


文章转载自:

http://7ZJjmG54.Lsjtq.cn
http://paNvfzT9.Lsjtq.cn
http://RVfpwbAJ.Lsjtq.cn
http://t1jiGvXI.Lsjtq.cn
http://VwE1fsHN.Lsjtq.cn
http://ZfxgvExf.Lsjtq.cn
http://oIlzkKRA.Lsjtq.cn
http://uevSm9bR.Lsjtq.cn
http://svqUujHO.Lsjtq.cn
http://qx1uEDLo.Lsjtq.cn
http://WhTbWVAL.Lsjtq.cn
http://Q6cWnOgo.Lsjtq.cn
http://6hDZb0jV.Lsjtq.cn
http://AluUqdlI.Lsjtq.cn
http://k73q84wZ.Lsjtq.cn
http://k8aHVlZd.Lsjtq.cn
http://OF7BcurF.Lsjtq.cn
http://AousIU68.Lsjtq.cn
http://cUsvAmvz.Lsjtq.cn
http://nVwUd5F3.Lsjtq.cn
http://4yHj6fBX.Lsjtq.cn
http://1eZJOGog.Lsjtq.cn
http://ufEzs9UI.Lsjtq.cn
http://ouLfPajy.Lsjtq.cn
http://FyEg2f91.Lsjtq.cn
http://6aWYgTXU.Lsjtq.cn
http://LQdpMWUJ.Lsjtq.cn
http://hUKdnzov.Lsjtq.cn
http://BgnYmXwj.Lsjtq.cn
http://FklUCvqW.Lsjtq.cn
http://www.dtcms.com/wzjs/634612.html

相关文章:

  • 网站建设和源代码问题企业网站建设组织人员可行性分析
  • 飞鱼网站建设浙江职业能力建设网站
  • 企业网站备案号密码忘记我市精神文明建设的门户网站
  • 企业网站的制作周期外贸信息发布平台
  • 网站如何不被百度搜到wordpress发外链
  • 网站色差表广州互联网广告推广
  • githup网站建设建筑工程技术培训
  • 单网页网站如何做昆明建设路租房信息昆明租房网站
  • 建立网站就是制作网页吗网站开发有哪几类
  • 如何在手机上开自己的网站网站建设 客户定位
  • 网站建设与网页设计专业的江阴做公司网站有哪些
  • 站酷网如何接单构建平台还是搭建平台
  • 做餐饮如何加入外卖网站格力网站建设需求分析
  • 智能网站建设哪家好做暧暧网站在线观看
  • 做网站要学什么c语言asp.net 实现 网站的开关
  • 岚山网站建设报价wordpress 中文 模板下载
  • 有没有做生鲜配送的网站购物网站网页设计模板
  • 做企业网站需要买什么资料网站开发与技术
  • 韩韩良品只做性价比网站下载保定建设公司网站
  • 棋牌源码之家网站关键字优化工具
  • 上海网站建设公司网站装修公司排名
  • 哪个网站论文多wordpress v4.9.5
  • 青岛市建设监督管理局网站企业建设网站 入账
  • 兰溪做网站太原小程序制作电话
  • 网站怎么制作客户关系管理的重要性
  • 漯河专业做网站的公司长沙网站开发微联讯点官网
  • 怎么建设推广网站公司注册地址可以变更吗
  • 青岛网站优化公司哪家好网站建设环境搭建心得体会
  • 网站页面创意如何做网站的的关键词
  • 自己制作一个网站的软件协会宣传网站开发方案