Array 算法题的思考 数组类的算法是在我做的题目中是最多的,相对来说也是最好理解的它也可以包罗万象,使用各种各样的算法。用数组可以实现很多基本的数据结构。比如heap。所以这部分需要好好掌握。 SWAP 需要应用到数组元素交换是一类非常常见的题目,比如说求最大的K个数,这种题目一般都是使用基本的快速排序思想。也就是说,我们把这个数组分成两部分,一部分是比当前这个数字大的,另外一部分是比这个当前数字小的,这样我们可以快速的把一个array分成两部分,然后再分别对这两部分进行处理。 如果只是需要移动一些数字,比如说移动零或者整个数组只有三个数,那么可以用一些更简单思想,比如说记录下所有非0的数,或者记录下这些数字的个数,然后把前面全换成这些非0数,后面换成零。这样做的好处就是不需要交换。或者一个记录非0的地方,另外一个记录当前位置,如果这个不是零,那么就遇上一个非0的东西交换。所以总体思路都是双指针的思想,一个记录当前遍历的位置,另外一个记录上一次符合条件的位置。 27. Remove Element 75. Sort Colors 283.……

阅读全文