刷算法题心得
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; } }
[ 版权声明 ]:
本文所有权归作者本人,文中参考的部分已经做了标记!
商业用途转载请联系作者授权!
非商业用途转载,请标明本文链接及出处!

浙公网安备 33010602011771号