王院长的博客

Thinking will not overcome fear but action will.

Aria2加速百度云简明指南(2020.02)

前言 众所周知,百度云现在越来越恶心了,会限制非超级会员的下载速度,很多G的东西你给我限速到20kb/s,真是为难我胖虎,这是要下到下一个鼠年。 不仅如此,有时候要下载一个几十M的文件都要让我下载百度云客户端,喵喵喵??? 找了好久,终于找到个暂时有效(2020.02)、稍微干净、可能不限速的办法:用Aria2 下载百度云文件。 前置工作(环境配置) 请自备翻墙工具 Chr...

Mac 端词典折腾小记

Mac 端词典折腾小记 感觉好久没写博客了……最近折腾了一波手边的工具(我总是这么的无所事事……),包括输入法和词典。 macOS 的词典其实也还行,但是查词并没有那么的方便。一般是鼠标光标对着要查的单词,然后快捷键 Ctrl+CMD+D。 但自带词典收词量不大,而且外挂拓展词典的话,速度并不是很占优势。 欧路词典,与我以前用的 Goldendict 一样,可以外挂 .mdx 的词...

经典动态规划之背包问题

背包问题 问题描述 有N件物品和一个容量为C的背包。第i件物品的体积是w[i],价值是v[i]。求解将哪些物品装入背包可使价值总和最大。 状态转移矩阵: mem[i][j] = max(mem[i-1][j], mem[i-1][j - w[i-1]] + v[i-1]) 即,拿该件物品时的价值,与不拿该件物品(即mem[i-1][j])时的价值,取最大值 当要拿的物品重量大于背包容量时,...

输入字符串最少按键次数

切换大小写最少次数 题目:输入一个字符串,键盘按键Caps Lock可以切换大小写模式,在大写模式下,若想输入小写字母,可以shift+字母,同样在小写模式下,若想输入大写字母可以shift+字母,给定一个字符串求最小的点按键击次数。注意:shift+字母算两次按键点击,默认初始状态是小写模式。 输入:‘AaAAA’ 输出:7 解析: 这是一个动态规划问题,当前状态可以...

Leetcode 34

浅谈二分查找的细节

Leetcode 34. 在排序数组中查找元素的第一个和最后一个位置 34. 在排序数组中查找元素的第一个和最后一个位置 二分查找的细节 1、while 的条件,是 left <= right 还是 left < right ? 如果 left, right = 0, len(nums) - 1 ,那么搜索区间是双闭区间,[left, right],当搜索区间...

Leetcode 215

Leetcode 215. 数组中的第K个最大元素 215. 数组中的第K个最大元素 方法一:快速排序变种 其实就是快速排序中的partition方法,该方法可以确定pivot在排序后数组中的位置(即pivot左边的数都比它小,右边的数都比它大),且返回pivot对应的index class Solution(object): def findKthLargest(self, ...

快排与堆排序

快速排序 这种写法比较好记。 两个指针,一个指向小于pivot,一个循环整个数组,如果小于pivot则交换 def quiksort(nums, start, end): def partition(low, high): pivot, j = nums[low], low for i in range(low+1, high+1): ...

剑指offer的一些刷题记录

面试题3 数组中找出重复的数字 长度n+1的数组,范围[1,n],其中至少有一个数字是重复的,要求找出任一重复的数字 def get_duplication(nums, length): # 求原数组中,[left, right] 有几个元素 def count_range(left, right): if left > right: ...

二叉树的遍历

二叉树的遍历(递归与非递归实现) 前序遍历 class Tree(): def __init__(self, root = root): self.root = root # 前序遍历非递归实现 def preorder_no_recursion(self, root): stack = [] res = [] ...