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

数据结构与算法-3元组

给一个数组和一个目标值k,从数组中找出3个值,要求这三个数相加后等于目标值k。返回所有符合这个条件的三个值,同时这三个值的字面量要去重,不能一样。
将3元组问题化解成2元组问题。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;public class C_3Sum {public static List<List<Integer>> threeSum(int[] nums) {Arrays.sort(nums); // 先排序List<List<Integer>> ans = new ArrayList<>();for (int i = nums.length-1; i > 1; i--) {if(i == nums.length-1 || nums[i] != nums[i+1]) {int target = 0 - nums[i];List<List<Integer>> lists = twoSum(nums, i - 1, target);for (List<Integer> cur : lists) {cur.add(nums[i]);ans.add(cur);}}}return ans;}// nums[0...end]这个范围上,有多少个不同二元组,相加==target,全返回// {-2,9}     K = 7// {1, 6}public static List<List<Integer>> twoSum(int[] nums, int end, int target) {List<List<Integer>> ans = new ArrayList<>();int L = 0;int R = end;while (L < R){if(nums[L] + nums[R] > target){R--;}else if(nums[L] + nums[R] < target){L++;}else{if(L == 0 || nums[L-1] != nums[L]){List<Integer> cur = new ArrayList<>();cur.add(nums[L]);cur.add(nums[R]);ans.add(cur);}L++;}}return ans;}public static void main(String[] args) {//System.out.println("main...");int[] nums = {-1,0,1,2,-1,-4};List<List<Integer>> lists = threeSum(nums);for(List<Integer> cur : lists){for(Integer i : cur){System.out.print(i+" ");}System.out.println();}}
}
http://www.dtcms.com/a/538028.html

相关文章:

  • 上传网站模板做本地网站能赚钱么
  • 手机建个人网站如何做网站美工
  • PatchCore 异常检测算法的原理
  • opencart网站搜索引擎营销成功的案例
  • 从零开始的C++学习生活 16:C++11新特性全解析
  • 单位门户网站建设方案初创公司 建网站
  • wordpress建站位置课件ppt模板免费下载
  • maven的基本概念与使用
  • 大良招聘网站建设天眼查企业查询入口
  • 如何在互联网推广自己的产品seo和网络推广哪个好
  • 北京网站建设的公网站设计案例分析
  • 做3d ppt模板下载网站泰州网站建设公司哪个好
  • 常州企业微信网站建设常用网站代码
  • 网站建设法律法规西安住房和城乡建设部网站
  • 网站制作的流程微信怎么做捐钱的网站
  • 安卓做网站怎么自学电商运营
  • 【STM32项目开源】STM32单片机智能台灯系统
  • 福建网站开发企业合作社做网站有用吗
  • 太原网站推广优化设计师服务平台鱼巴士官网
  • 2025 备考信创中级认证包含哪几个专业方向?
  • 莱芜聊城网站建设wordpress 修改文章内容
  • 什么叫宣传类网站百度对 wordpress 排名
  • 网站后台界面设计网站建设系统
  • 天津网站建设推广服务出国用哪个地图app好
  • 中国商标注册网官方网站做彩票网站需要什么收钱的
  • 做网站记者好吗基层网站建设存在困难
  • 建设网站公司地址北京建设网网站
  • 切换C++编译器 报告总结
  • 操作系统5.3.3 减少磁盘延迟时间的方法
  • php小型网站源码山东微道商网络技术有限公司