相向双指针

拿O(1)的时间获取O(n) 的信息,进而将时间复杂度减低

相应的题目

两数之和

三数之和

四数之和

这里都运用双向指针来降低时间复杂度,难度依次上升。

最终都化为了两数之和的问题

解题难点记录

  •  对于重复元素的处理

        外层元素如果重复,直接跳过(判断条件要判断是否为第一个元素,避免越界)

        双向指针部分(利用下面这段代码,来跳过重复元素)

for(pre++;nums[pre]==nums[pre-1];pre++);

语法学习

  • List>    --------> 这是放集合的集合
  • sum.add(Arrays.asList(nums[0],nums[1]));  -------->其中sum 的类型是上面这种
  • Arrays.sort(nums) -------------> 对数组进行排序

你可能感兴趣的:(算法)