zoukankan      html  css  js  c++  java
  • 刷算法题心得

    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;
        }
    }
    [ 版权声明 ]: 本文所有权归作者本人,文中参考的部分已经做了标记! 商业用途转载请联系作者授权! 非商业用途转载,请标明本文链接及出处!
  • 相关阅读:
    第三方组件之SinGooCMS.Plugins
    .net 工具集之SinGooCMS.Utility
    轻量级ORM之SinGooCMS.ADO
    Mustache 使用说明
    npm install -g 错误集锦
    获取Rtx用户状态方法
    sudo 运行 npm或node时,出现找不到命令
    install build essential
    安装hadoop 2.2.0
    异步更新界面方法
  • 原文地址:https://www.cnblogs.com/gslgb/p/14642460.html
Copyright © 2011-2022 走看看