1、看到题目,想清楚思路在下手写代码
2、遇到关于二叉树的题目,首先想递归
3、遇到一些很抽象的问题,先想在纸上画出来一些,或者代入实际的例子试一试
4、要结合那几种数据结构(map、list、set、数组、栈),看能不能用到这些结构
5、排序数组分析一般会使用双指针法,如下面这道题,求一个数组中和为s的两个数,并返回
import java.util.ArrayList; public class Solution { public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) { //其实,整体的思路还是一种双指针的思路 ArrayList<Integer> list = new ArrayList<Integer>(); if(array== null || array.length==0){ return list; } //双指针法,定义两个左右指针 int left = 0; int right = array.length-1; //循环的条件 while(left <= right){ if(array[left] + array[right]== sum){ list.add(array[left]); list.add(array[right]); break; }else if(array[left] + array[right] > sum){ right--; }else{ left++; } } return list; } }