摘要:題目鏈接,從小到大排序固定第一個(gè)數(shù)字,從后面的數(shù)字里選第二個(gè)第三個(gè)后兩個(gè)數(shù)字,用來(lái)找,從開始因?yàn)樗兄g的數(shù)和組合都
3Sum Smaller
題目鏈接:https://leetcode.com/problems...
sort,從小到大排序
固定第一個(gè)數(shù)字index = i,從后面的數(shù)字里選第二個(gè)第三個(gè)
后兩個(gè)數(shù)字,用2 points來(lái)找,從j = i + 1, k = len() - 1開始:
if n[j] + n[k] < target - n[i]: count += (k-i), j++
因?yàn)樗?j+1, k)之間的數(shù)和n[j]組合都< target - n[i]
if n[j] + n[k] >= target - n[i]: k--
public class Solution { public int threeSumSmaller(int[] nums, int target) { if(nums == null || nums.length < 3) return 0; // sort first Arrays.sort(nums); /* enumerate 1st num: k * 2 points find 2nd, 3rd * initial: i = k + 1, j = len(nums) - 1 * case 1: n[i] + n[j] < target - n[k]: count += j - i, i++ * case 2: > : j-- */ int count = 0; for(int k = 0; k < nums.length - 2; k++) { int i = k + 1, j = nums.length - 1; while(i < j) { if(nums[i] + nums[j] >= target - nums[k]) j--; else { count += j - i; i++; } } } return count; } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/66566.html
摘要:排序法復(fù)雜度時(shí)間空間思路解題思路和一樣,也是先對(duì)整個(gè)數(shù)組排序,然后一個(gè)外層循環(huán)確定第一個(gè)數(shù),然后里面使用頭尾指針和進(jìn)行夾逼,得到三個(gè)數(shù)的和。 3Sum Smaller Given an array of n integers nums and a target, find the number of index triplets i, j, k with 0 = target){ ...
Problem Given an array of n integers nums and a target, find the number of index triplets i, j, k with 0 = target) return 0; int count = 0; for (int i = 0; i < nums.length-2; i++) { ...
摘要:為了避免得到重復(fù)結(jié)果,我們不僅要跳過重復(fù)元素,而且要保證找的范圍要是在我們最先選定的那個(gè)數(shù)之后的。而計(jì)算則同樣是先選一個(gè)數(shù),然后再剩下的數(shù)中計(jì)算。 2Sum 在分析多數(shù)和之前,請(qǐng)先看Two Sum的詳解 3Sum 請(qǐng)參閱:https://yanjia.me/zh/2019/01/... 雙指針法 復(fù)雜度 時(shí)間 O(N^2) 空間 O(1) 思路 3Sum其實(shí)可以轉(zhuǎn)化成一個(gè)2Sum的題,...
摘要:解題思路題目要求兩個(gè)數(shù)和等于,返回其題目說明不會(huì)有重復(fù)情況,所以我們一旦發(fā)現(xiàn)符合情況的,就可以直接結(jié)束循環(huán)并返回。特殊情況就是正好等于,那肯定是最接近的情況,直接返回即可。 Two SumGiven an array of integers, return indices of the two numbers such that they add up to a specific ta...
摘要:找符合條件的總數(shù)。雙指針區(qū)間考慮邊界,長(zhǎng)度,為空,等。之后的范圍用雙指針和表示。若三個(gè)指針的數(shù)字之和為,加入結(jié)果數(shù)組。不要求,所以不用判斷了。同理,頭部?jī)蓚€(gè)指針向后推移,后面建立左右指針夾逼,找到四指針和為目標(biāo)值的元素。 Two Sum Problem Given an array of integers, find two numbers such that they add up ...
閱讀 2843·2023-04-26 02:23
閱讀 1588·2021-11-11 16:55
閱讀 3153·2021-10-19 11:47
閱讀 3366·2021-09-22 15:15
閱讀 1982·2019-08-30 15:55
閱讀 1043·2019-08-29 15:43
閱讀 1298·2019-08-29 13:16
閱讀 2200·2019-08-29 12:38