259. 3Sum Smaller

和3Sum比较像

 1     public int threeSumSmaller(int[] nums, int target) {
 2         if(nums.length < 3) {
 3             return 0;
 4         }
 5         int count = 0;
 6         Arrays.sort(nums);
 7         for(int i = 0; i < nums.length - 2; i++) {
 8             int left = i + 1;
 9             int right = nums.length - 1;
10             while(left < right) {
11                 if(nums[i] + nums[left] + nums[right] < target) {
12                     count += right - left;
13                     left++;
14                 } else {
15                     right--;
16                 }
17             }
18         }
19         return count;
20     }

我觉得这种方法没有有效跳过重复数字,但是ac了。

O(n)

posted @ 2016-08-12 09:57  warmland  阅读(131)  评论(0编辑  收藏  举报