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

西安自助建站做网站app编程入门教程

西安自助建站做网站,app编程入门教程,做国内电影网站赚钱不,郑州网站排名推广文章目录 15. 三数之和题干#xff1a;算法原理#xff1a;1、排序 暴力枚举 利用set 去重2、排序 双指针 代码#xff1a; 18. 18. 四数之和题干#xff1a;算法原理#xff1a;1、排序 暴力枚举 利用set 去重2、排序 双指针 代码#xff1a; 15. 三数之和 原题链… 文章目录 15. 三数之和题干算法原理1、排序 暴力枚举 利用set 去重2、排序 双指针 代码 18. 18. 四数之和题干算法原理1、排序 暴力枚举 利用set 去重2、排序 双指针 代码 15. 三数之和 原题链接 题干 存在一个三元组,满足 i ! j、i ! k 且 j ! k nums[i] nums[j] nums[k] 0 算法原理 1、排序 暴力枚举 利用set 去重 这个方法就是先循环用几个 for 循环暴力枚举然后放到 HashSet 中去重 但是这个方法时间复杂度很高达到了O(N3) 2、排序 双指针 1排序 这里进行排序是为了从前向后遍历的时候可以更好的用双指针进行操作 2固定一个数 a 这个 a 必须要大于等于 0因为题目要求三数相加等于 0 3在该数后面的区间内利用“双指针算法”快速找到两个数的和等于 -a 即可 4处理细节问题 不要漏任何一个组合 在 left 和 right 向中间走的时候找到一个数等于固定的数的负数不能停下继续缩小区间寻找下一个 去重 由于题目要求不能返回相同的数组所以要求去重 这样就可以找到一种结果之后left 和 right 指针要跳过重复元素 当使用完一次双指正算法之后也要跳过重复元素 但要注意避免越界 代码 public ListListInteger threeSum(int[] nums) {ListListInteger ret new ArrayList();//1.排序Arrays.sort(nums);int n nums.length;//2.利用双指针for (int i 0; i n;) {int left i 1;int right n - 1;int target -nums[i];if (nums[i] 0) {break;}while (left right) {int sum nums[left] nums[right];if (sum target) {left;}else if (sum target) {right--;}else {ret.add(new ArrayListInteger(Arrays.asList(nums[i],nums[left],nums[right])));//缩小区间继续寻找left;right--;while (left right nums[left] nums[left-1]) {left;}while (left right nums[right] nums[right1]) {right--;}}}i;while (i n nums[i] nums[i-1]) {i;}}return ret;}18. 18. 四数之和 题干 这道题跟上面的三数之和非常相似因此下面的解题思路也是非常相似 nums[a] nums[b] nums[c] nums[d] target 算法原理 1、排序 暴力枚举 利用set 去重 这个算法依然是超时的我们主要看第二种 2、排序 双指针 1排序 2在 a 后面的区间内利用“三数之和”找到三个数和上面题的方法一样使这三个数的和等于 target - a 3处理细节问题 不漏去重 代码 public ListListInteger fourSum(int[] nums, int target) {ListListInteger ret new ArrayList();int n nums.length;//1.排序Arrays.sort(nums);//2.双指针for (int i 0; i n;) {long t1 (long)target - nums[i];for (int j i 1; j n;) {long t2 t1 - nums[j];int left j 1;int right n - 1;while (left right) {int sum nums[left] nums[right];if (sum t2) {right--;}else if (sum t2) {left;}else {ret.add(Arrays.asList(nums[i],nums[j],nums[left],nums[right]));left;right--;while (left right nums[left] nums[left-1]) {left;}while (left right nums[right] nums[right1]) {right--;}}}j;while (j n nums[j] nums[j-1]) {j;}}i;while (i n nums[i] nums[i-1]) {i;}}return ret;}
http://www.zqtcl.cn/news/537254/

相关文章:

  • 烟台住房和城乡建设厅网站重庆网站界面设计
  • 企业网站推广服务协议html编程语言
  • 上海知名网站建设公司合肥建设云平台证书查询
  • 网站响应度西安哪家公司做的网站好
  • 广州市白云区网站建设维护wordpress如何匹配模板
  • 360网站导航公司地址怎么做seo 优化一般包括哪些内容
  • 龙岗高端建设网站建设南京旅游网页设计
  • 企业网站优化问题wordpress滑动
  • 亳州网站建设费用广东网站建设报价
  • ai生成作文网站驾校网站源码下载
  • icon图标素材下载网站郑州做定制网站的公司
  • 网站建设培训哪家好北京有几个区几个县
  • 县局网站建设招标最新网页游戏传奇
  • 咋么做进网站跳转加群代理记账公司如何寻找客户
  • 可以做pos机的网站app网站建设制作
  • 手机移动端网站影视摄影传媒公司
  • 做化工资讯的网站湖南省做网站的
  • 廊坊哪些公司做网站做网站域名是什么意思
  • 印刷网络商城网站建设上海那家公司做响应式网站建设
  • 四川省建设厅职称查询网站购物网站页面设计
  • 网站开发导航可以进不良网站的浏览器
  • 一个中介平台网站的建设费wordpress 文章列表只显示标题
  • 网站建设包括两个方面聊城建设路小学网站
  • 怎么样做一个自己的网站遵义软件制作平台
  • 推广网站实例建设厅的证在哪里查询
  • 分类网站建设方案做学校教务处网站
  • 如何做链接淘宝客的网站只做画册的网站
  • docker可以做网站吗专业的营销型网站
  • 重庆市建设工程安全网站上海制造网站公司
  • 咨询网站公司建设计划书安卓软件开发软件