当前位置: 代码迷 >> 综合 >> 算法 1.4.15 快速3-sum
  详细解决方案

算法 1.4.15 快速3-sum

热度:22   发布时间:2023-09-23 03:32:50.0

我只考虑数组中并未存在重复的元素

O(N) 只要把数组全部扫一遍就好了

	public static int TwoSumFast2(int[] a){ // O NArrays.sort(a);int cnt=0;int left = 0, right = a.length-1;while(left<right){if(a[left]+a[right]==0){cnt++;left++;}if(a[left]+a[right]>0) right--;if(a[left]+a[right]<0) left++;}return cnt;}


3-sum和2-sum思路一致 O(N^2)

	public static int ThreeSumFast2(int[] a){ // N^2 Arrays.sort(a);int N = a.length;int cnt=0;for(int i=0;i<N;i++){int left = i+1, right=a.length-1;while(left<right){if(a[left]+a[right]+a[i]==0){cnt++;left++;}if(a[left]+a[right]+a[i]>0) right--;if(a[left]+a[right]+a[i]<0) left++;}}return cnt;}


  相关解决方案