MaggicQ's Blog

路漫漫其修远兮

Leetcode题解-回溯

本文目录 基本思想 常见题目 括号生成 子集 子集 II 全排列 全排列 II 组合总和 组合总和 II 单词搜索 N皇后 分割回文串 基本思想 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不...

算法笔记-减治法

减治法 减治(decrease-and-conquer)利用一个问题给定实例的解和同样问题较小实例的解之间的某种关系, 一旦建立了这种关系,我们既可以从顶至下,也可以从底至上地来运用该关系。 自底而上的版本往往是迭代实现的,从求解问题的一个较小实例开始,该方法有时也成为增量法(Incremental Approach)。 减治法有三种主要的变化形式: 减去一个常量:计算$a^...

Leetcode题解-字符串与数列

本文目录 数列 两数之和 三数之和 四数之和 除自身以外数组的乘积 删除排序数组中的重复项 盛最多水的容器 螺旋矩阵 合并两个有序数组 接雨水 乘积最大子序列 求众数 旋转数组 递增的三元子序列 数组中的第K个最...

算法笔记-减治法

减治法 减治(decrease-and-conquer)利用一个问题给定实例的解和同样问题较小实例的解之间的某种关系, 一旦建立了这种关系,我们既可以从顶至下,也可以从底至上地来运用该关系。 自底而上的版本往往是迭代实现的,从求解问题的一个较小实例开始,该方法有时也成为增量法(Incremental Approach)。 减治法有三种主要的变化形式: 减去一个常量:计算$a^...

算法笔记-贪婪技术

贪婪技术 贪婪法通过一系列的步骤来构造问题的解,每一步对目前构造的部分解一个拓展,直到获得问题的完整解为止,这个技术的核心是,所做的每一步选择都必须满足以下条件: 可行的(feasible),即它必须满足问题的约束。 局部最优(locally optimal):它是当前步骤中所有可选选择中的最佳局部选择 不可取消(irrevocable):即选择一旦做出,在算法的后面步骤中...

理解python装饰器

本篇文章翻译自stackoverflow中一个关于python装饰器问答下的高票回答 函数是一种对象 为了理解装饰器,你必须理解在pyhton中,函数是一种对象。这有着重要的意义,让我们通过下面这个例子看看原因: def shout(word="yes"): return word.capitalize()+"!" print(shout()) # outputs : 'Ye...

Linux内核的启动

Linux 内核的启动 前几天因为Ubuntu升级,本来装的双系统在开机启动时出现了一些问题,因为我对开机启动方面的不了解,最后导致了系统的重装,产生了很多不必要的麻烦,还丢失了很多数据。所以在这里总结了一些Linux系统启动方面的常识,希望下次再遇到能用上:) 启动过程概述 下面是简化之后的整个启动过程: BIOS或者启动固件加载并运行引导装载程序 引导装载程序在磁盘上找...

Linux进程与资源的监控

计算机中的硬件资源主要有三种:CPU, 内存 和 I/O 。进程为获得这些资源资源相互竞争,而操作系统(内核)则负责公平地分配资源。这里介绍一些linux系统下性能监控的简单方法。 Linux下进程与资源的利用详解 进程跟踪 ps命令 ps命令可以帮助我们查看系统中运行的进程。比如: luo@luo-ThinkPad-Edge-E431:~$ ps PID TTY ...

Linux文件目录详解

Unix的哲学: 小即是美 让每一个程序只做好一件事 KISS(keep it simple,stupid) Linux系统历史简介 1969年,Ken Thompson(C 语言之父)利用汇编语言开发了 FIle Server System(Unics,即 UNIX 的原型),后来在他发明了C语言之后,他又用C语言写出了UNIX的内核,这很好...

python实现简易模板引擎

python实现简易模板引擎 本文章翻译自A-template-engine. 该项目的作者为Ned Batchelder,他是一位经验丰富的软件工程师,是coverage.py(一个代码覆盖度检测工具)以及很多开源库的作者,同时也是一位享誉盛名的教育家。在这个项目中,他很短短几百行,实现了一个功能齐全的模板引擎。 什么是模板引擎 模板引擎(特指用于web开发的模板引擎),是为了使用...