摘要:
掌握 LeetCode 刷题方法再开始刷题,属于磨刀不误砍柴工。掌握正确方法是非常重要的。 如果你在刷题的时候发现怎么也写不出来,别担心,这是正常的。如果你还发现,之前明明刷过的题,过段时间再做的时候,自己还是不会。别担心,这也是正常的。 在这我分享一下我的刷题经验,希望对你有帮助。如果你时间比较紧 阅读全文
摘要:
Python 实用脚本 脚本写的好,下班下得早!程序员的日常工作除了编写程序代码,还不可避免地需要处理相关的测试和验证工作。 例如,访问某个网站一直不通,需要确定此地址是否可访问,服务器返回什么,进而确定问题在于什么。完成这个任务,如果一味希望采用编译型语言来编写这样的代码,实践中的时间和精力是不够 阅读全文
摘要:
1、概念 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。 回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术 阅读全文
摘要:
一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅 阅读全文
摘要:
一、基本描述 类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义 阅读全文
摘要:
一、基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。 二、基本思想与策略 基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为 阅读全文
摘要:
贪心算法 一、基本概念: 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。 贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必 阅读全文
摘要:
文章目录 2.1 类、接口和函数2.1.1 类和接口的注释写在类声明(class ClassName:)所在行的下一行,并向后缩进4个空格2.1.2 公共函数的注释写在函数声明(`def FunctionName(self):`)所在行的下一行,并向后缩进4个空格2.2 属性2.2.1 公共属性的注 阅读全文
摘要:
文章目录 9.1 异常行为9.1.1 禁止抑制或者忽略已检查异常9.1.2 禁止在异常中泄露敏感信息9.1.3 方法发生异常时要恢复到之前的对象状态9.2 运行环境9.2.1 生产代码不能包含任何调试入口点9.2.2 使用标准的API替代操作系统的系统命令9.2.3 禁止从第3方源下载并使用软件包9 阅读全文
摘要:
文章目录 8.1 可变参数默认值设为`None`8.2 对子类继承的变量要做显式定义和赋初值8.3 严禁使用注释行等形式仅使功能失效8.4 慎用`copy`和 `deepcopy`8.5 系统路径推荐使用 `pathlib.Path`8.6 使用`subprocess`模块代替`os.system` 阅读全文