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

福建宏盛建设集团网站百度新闻发布

福建宏盛建设集团网站,百度新闻发布,北京网上服务平台,搭建一个网站平台需要多少钱【双指针简化去重操作】【int运算范围】Leetcode 18 四数之和 解法1 仍然用双指针法 就是在三数求和的基础上扩展一个外层循环 ----------------------题目链接---------------------- ----------------------解析链接---------------------- 解法1 仍然用双指针法 就是在三数…

【双指针+简化去重操作】【int运算范围】Leetcode 18 四数之和

    • 解法1 仍然用双指针法 就是在三数求和的基础上扩展一个外层循环

----------------------题目链接----------------------
----------------------解析链接----------------------
在这里插入图片描述

解法1 仍然用双指针法 就是在三数求和的基础上扩展一个外层循环

新建一个嵌套列表:List<List<Integer>> result = new List<>();
初始化一个ArrayList并直接赋值:ArrayList<Integer> result = new ArrayList<>(Arrays.asList(1, 2, 3, 4));
向列表中添加元素:result.add()
向ArrayList中添加:result.add (Arrays.asList(1, 2, 3, 4));

操作流程

  1. nums数组进行排序!!!
  2. nums[i] 从头到倒数第四个遍历数组,nums[j] 从i的下一个开始到倒数第三个遍历数组,
    nums[left]是nums[i]的下一个元素,nums[right]最初指向数组的最后一个元素
  3. 考察nums[i] + nums[j] + nums[left] + nums[right]的情况。如果和大于0,则right–,如果和小于0,则left++,等于0则添加结果

去重操作(不可以包含重复的四元组)

  • 对 i 进行去重:如果 i>0 , nums[i] == nums[i-1] , continue
  • 对 j 进行去重:如果 j>1 , j != i+1 , nums[j] == nums[j-1] , continue
  • 对 left 进行去重:如果nums[left] == nums[left+1]。left++
  • 对 right 进行去重:如果nums[right] == nums[right - 1]。right–

溢出问题
在Java中,int类型的大小是固定的,它是一个32位的整数类型。
因此,它的最大值是2^31 - 1,即2147483647,最小值是-2^31,即-2147483648。
如果你尝试存储超过这个范围的值,就会发生溢出。
(long)转化

时间复杂度O(N^3)
空间复杂度O(1)

class Solution {public List<List<Integer>> fourSum(int[] nums, int target) {//仍然用双指针法 就是在三数求和的基础上扩展一个外层循环List<List<Integer>> result = new ArrayList<>();// 从小到大 排序Arrays.sort(nums);// nums[i] nums[j]外层双循环 nums[left] nums[right]双指针遍历for(int i = 0; i < nums.length-3; i++){// 去重iif(i>0 && nums[i] == nums[i-1]) continue;for(int j = i+1; j < nums.length-2; j++){int left = j+1;int right = nums.length-1;// 去重jif(j>1 && j != i+1 && nums[j] == nums[j-1]) continue;while(left < right){if((long)nums[i]+nums[j]+nums[left]+nums[right] > target){ //防止溢出right--;}else if((long)nums[i]+nums[j]+nums[left]+nums[right] < target){//防止溢出left++;}else{result.add(Arrays.asList(nums[i], nums[j], nums[left], nums[right]));// 去重left while(left < right && nums[left] == nums[left+1]){left++;}// 去重rightwhile(left < right && nums[right] == nums[right - 1]){right--;}left++;right--;}}}}return result;}
}         
http://www.dtcms.com/wzjs/578235.html

相关文章:

  • 北京网站搭建公司排名网站建设的技巧有哪些方面
  • 平面设计网站知乎东道设计公司官网招聘
  • 站群系统开发华为荣耀手机最新款
  • 徐州市专业做网站的公司低价格网站建设
  • 建设和管理环保网站临沂网站制作软件
  • 安阳市城乡建设规划局网站2022年5月国内重大新闻
  • 网站备案信息查询接口群晖wordpress 映射
  • 西宁做网站的网络公司wordpress 优享
  • 做网站用什么配置笔记本如何做一个简单的网站
  • 网站logo做黑页wordpress使用模板
  • 做微商有卖鞋子的网站吗青岛市建设工程信息网官网
  • 个人网站 摄影展示大连市网站制作电话
  • 做网站的人多吗荆门网站开发有哪些
  • 公司网站建设费维护费会计分录徐州网站建设案例
  • 营销型企业网站功能西安网站开发外包公司有
  • 温州高端品牌网站建设263邮箱注册
  • 绍兴网站制作多少钱个人怎么制作网站
  • 怎样做已有网站的编辑维护wordpress如何配置伪静态
  • 外观设计网站谷歌seo优化技巧
  • 福州网站建设技术支持网站的设计风格
  • 欧美企业网站模板西安官网seo哪家公司好
  • 房产类网站建设单页网站内链接
  • 自己做的网站邮箱更改密码程序为什么总出错搜索引擎优化到底是优化什么
  • 那个网站可以做攻略2021年建站赚钱
  • 平面设计作品集如何制作网站优化快照
  • 都昌县建设局网站微信公众平台登录入口官网
  • 有谁知道知乎网站是谁做的中国铁建最新消息
  • 18互联网站做网站程序官方网站如何建立
  • 上海网站开发前十名网站网站注册
  • 网站如何进行推广佛山市品牌网站建设价格