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

自己做网站排版做网站哪种字体好看

自己做网站排版,做网站哪种字体好看,中小企业网址,国外注册域名的网站15. 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元…

15. 三数之和

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != ji != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请你返回所有和为 0 且不重复的三元组。

注意:答案中不可以包含重复的三元组。

示例 1:

输入:nums = [-1,0,1,2,-1,-4]
输出:[[-1,-1,2],[-1,0,1]]
解释:
nums[0] + nums[1] + nums[2] = (-1) + 0 + 1 = 0 。
nums[1] + nums[2] + nums[4] = 0 + 1 + (-1) = 0 。
nums[0] + nums[3] + nums[4] = (-1) + 2 + (-1) = 0 。
不同的三元组是 [-1,0,1] 和 [-1,-1,2] 。
注意,输出的顺序和三元组的顺序并不重要。

示例 2:

输入:nums = [0,1,1]
输出:[]
解释:唯一可能的三元组和不为 0 。

示例 3:

输入:nums = [0,0,0]
输出:[[0,0,0]]
解释:唯一可能的三元组和为 0 。

提示:

  • 3 <= nums.length <= 3000
  • -105 <= nums[i] <= 105

题解:

法一:排序 + 双指针

1. 先将目标数组排序,使其由小到大排序

Arrays.sort(nums);

2. 基本逻辑:设置三个指针,第一个指针i从头开始遍历,第二个指针left在i后一个位置开始遍历,第三个指针right则从最后一个位置开始遍历。

for(int i = 0;i < nums.length;i++) {int left = i + 1;int right = nums.length - 1;while(right > left) {int sum = nums[i] + nums[left] + nums[right];if(sum > 0) {right--;}else if(sum < 0) {left++;}else {res.add(Arrays.asList(nums[i],nums[left],nums[right]));right--;left++;}}}

3. 特殊情况直接返回

若nums[0]指向0则证明所有元素都大于0,不可能会有三个数之和大于0,返回空列表。

if(nums[0] > 0) {return res;}

4. 去重操作

4.1 对i指针去重

i指针指向的新元素与其之前指向的元素为同一个元素,直接跳过

if(i > 0 && nums[i] == nums[i - 1]) {continue;}

4.2 对left、right指针去重(添加新结果是进行去重)

while(right > left && nums[right] == nums[right - 1]){right--;}
while(right > left && nums[left] == nums[left + 1]) {left++;}

整体代码实现

class Solution {public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> res = new ArrayList<>();Arrays.sort(nums);for(int i = 0;i < nums.length;i++) {if(nums[0] > 0) {return res;}if(i > 0 && nums[i] == nums[i - 1]) {continue;}int left = i + 1;int right = nums.length - 1;while(right > left) {int sum = nums[i] + nums[left] + nums[right];if(sum > 0) {right--;}else if(sum < 0) {left++;}else {res.add(Arrays.asList(nums[i],nums[left],nums[right]));while(right > left && nums[right] == nums[right - 1]){right--;}while(right > left && nums[left] == nums[left + 1]) {left++;}right--;left++;}}}return res;}
}

 

http://www.yayakq.cn/news/831889/

相关文章:

  • PS怎么布局网站结构抖音直播开放平台
  • 外贸网站建设基础HTML转换WordPress文件
  • 怎么在vps上做网站免费引流推广的方法
  • 精品网站设计建设网站模式
  • 手机网站网页开发教程公众号如何添加wordpress
  • 哈尔滨网站建设制作价格小程序代码生成器
  • 驻马店 网站制作模板网站的建设
  • wordpress 经典网站江山有做网站开发吗
  • 软件公司网站系统集成建设优设网logo设计
  • 有哪些单页网站宁德市住房和城乡建设局
  • 福州 网站制作 外贸网站的基本概念
  • 网站片区做律师咨询网站
  • 做网站设计工作的报告书隐私页 wordpress
  • 做网站买空间佛系汉化组.wordpress com
  • 塘厦镇仿做网站如何上传织梦做的网站
  • 水利建筑工程网站php wap网站实现滑动式数据分页
  • 做网站开发学什么软件搜狗推广做网站要钱吗
  • 北京网站改版要注意什么58商机创业网
  • 编辑网站在线注册系统娱乐网wordpress主题
  • 湖北做网站找谁天津住房和城乡建设部网站
  • 哈密网站制作公司-哈密网站建设|哈密网络公司|哈密做网站qq网站登录
  • 遵义公司网站搭建多少钱建筑企业名单和电话
  • 企业展示网站开发专家:核酸检测公司该不该上市
  • 茂名平安建设网站河南省建设工程网站
  • 古镇建设网站建设局网站作用
  • 品牌加盟最好的网站建设新沂建设网站
  • 容城县网站开发品牌网站建设有哪些方面
  • 世界网站排名查询网站建设中源代码
  • 奉节集团网站建设如何做好品牌宣传工作
  • wordpress自定义新页面链接优化网站用什么软件好