算法训练营0515

本文探讨了如何高效学习数据结构与算法,包括预习、课堂互动和课后作业的重要性。强调了精通领域的步骤,如切碎知识点、刻意练习和即时反馈。在算法学习中,提出了五遍刷题法,分别用于理解、独立编程、巩固记忆、长期回顾和面试准备。此外,还分享了编程风格,如自顶向下设计和代码简洁性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何高效学习

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如何系统学习数据结构与算法

  • 注重预习
  • 课堂互动
  • 课后作业(切题方法)
    在这里插入图片描述
精通一个领域
  • 切碎知识点
  • 刻意练习
  • 反馈
    在这里插入图片描述
切碎知识点
数据结构

在这里插入图片描述

算法(八大点)

三个基础+5个高级

刻意练习

)
一只脚在舒适区,一只脚在…

切题四件套
  • Clarification(看清题目)
  • Possible Solutions(所有能想到的解法)
    • compare(time/spare)
    • optimal(加强)
  • Coding
  • Test cases
五毒神掌(五遍刷题法)

1.第一遍:读题+思考

  • 5~15分钟思考
  • 不会直接看解法看高赞题解,选择比较好的题解,
  • 背诵和默写好的解法
  • 马上写–>Leetcode提交
  • 多种解法比较体会–>优化

2.第二遍:

不看别人的代码,马上自己写下来,进行debug(自己开一个浏览器,空白的文件写代码)

写完之后->LeetCode提交,直到通过的状态

一个题目的话有多种的解法,多去体会。—>优化

3.第三遍:

过了24小时之后,回过头来做从重复的题目

不同解法的熟练程度—>专项练习

4.第四遍:

过了一周之后:反复回来进行练习相同的题目

5.第五遍:

面试前一周恢复性训练

反馈
  • 即使反馈
  • 正面反馈()
  • 反面反馈
    在这里插入图片描述

做算法题最大的误区:只做一遍

自顶向下的编程方式

clean code
最关键函数写在上面

下载VSCode,配置node环境,下载leetcode插件

验证回文串

class Solution {
    public boolean isPalindrome(String s) {
        //高层次(主干)逻辑
        //1.filter out number & chart; 2. reverse and cmopare

        String filteredS = _filterNonNumberAndChar(s);//去除其他字符

        //String reversedS = _reverseString(filteredS);//reverse

        //return reversedS.equalIgnoreCase(filteredS);//比较
        return  _reverseString(filteredS).equalsIgnoreCase(filteredS);

    }

    private String _reverseString(String s){
        return new StringBuilder(s).reverse().toString();
    }
    
    private String _filterNonNumberAndChar(String s){
        return s.replaceAll("[^A-Za-z0-9]", "");//用正则表达式,把需需要的换成空
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值