
一题多解
五道口纳什
wx公众号/B站:五道口纳什
展开
-
一题多解(二)—— 循环队列为空(满)的判断
方法 1:定义首尾指针(head、rear)(1)为空:head == rear(2)为满:head = (rear+1)%len方法 2:定义首指针+元素个数(head、cnt)(1)为空:cnt == 0(2)为满:cnt == len原创 2016-08-30 17:59:36 · 1465 阅读 · 0 评论 -
Trick && 一题多解——交换两个数(swap)
1. Python 的方式a, b = b, a2. 异或(避免中间变量的定义)(a⊕b)⊕a=b(a⊕b)⊕b=a" role="presentation">(a⊕b)⊕a=b(a⊕b)⊕b=a(a⊕b)⊕a=b(a⊕b)⊕b=a(a\oplus b)\oplus a=b\\(a\oplus b)\oplus b =a原创 2016-03-21 12:05:00 · 1059 阅读 · 0 评论 -
【证明】【一题多解】 —— 等比数列
1. 等比数列前 n 项和1+x+x2+⋯+2n=1−xn+11−x1+x+x2+⋯+2n=1−xn+11−x1+x+x^2+\cdots+2^n=\frac{1-x^{n+1}}{1-x}证明过程如下:1−xn+1=1−xn+1(1−x)=1−xn+1=1−xn+1(1−x)=1-x^{n+1}=1-x^{n+1}\\(1-x)=...原创 2018-06-03 17:26:50 · 1586 阅读 · 0 评论 -
【一题多解】平方根的计算及完全平方数的判断
1. 平方根的计算使用 Babylonian method 方法(https://en.wikipedia.org/wiki/Methods_of_computing_square_roots)进行计算:def babylonian(s, x0, n_iter): x = x0 for _ in range(n_iter): x = (x + s/x)/...原创 2018-07-16 23:26:30 · 2419 阅读 · 0 评论 -
【一题多解】Python 字符串逆序
https://blog.csdn.net/seetheworld518/article/details/46756639 https://blog.csdn.net/together_cz/article/details/762225581. 使用索引>> strA = 'abcdefg'>> strA[::-1]'gfedcba'2. 使用 lis...原创 2018-07-15 22:32:07 · 1882 阅读 · 0 评论 -
【证明】【一题多解】—— 负梯度方向的证明
1. 一节泰勒展开负梯度方向即为(以矢量形式为例):dk=−g(xk)dk=−g(xk)\bf{d_k}=-g(x_k)f(xk+λdk)≈f(xk)+λgT(xk)dkf(xk+λdk)≈f(xk)+λgT(xk)dk f({x_k}+\lambda d_k)\approx f(x_k)+\lambda g^T(x_k)d_k 由矢量相乘的 a⋅b=aTb=∥a∥∥b∥cosθ...原创 2018-07-26 12:37:51 · 1908 阅读 · 0 评论 -
【证明】【一题多解】【等价转换】—— 排列组合的计算
1. 组合数的等价转换递推关系(降低规模):⎧⎩⎨⎪⎪⎪⎪⎪⎪(nk)=nk(n−1k−1)(nk)=nn−k(n−1k){(nk)=nk(n−1k−1)(nk)=nn−k(n−1k)\left\{\begin{split}&\binom{n}{k}=\frac{n}{k}\binom{n-1}{k-1}\\&\binom{n}{k}=\frac{n}{n-k}\binom...原创 2018-07-26 20:36:37 · 1776 阅读 · 0 评论 -
【证明】【一题多解】布尔不等式(union bound)的证明
布尔不等式(Boole’s inequality)也叫(union bound),即并集的上界,描述的是至少一个事件发生的概率(P(⋃iAi)P(⋃iAi)\mathbb{P}\left(\bigcup_i A_i\right))不大于单独事件(事件之间未必独立)发生的概率之和(∑iP(Ai)∑iP(Ai)\sum_i\mathbb P(A_i))。即:P(⋃iAi)≤∑iP(Ai)P(⋃...原创 2018-07-30 23:11:59 · 17188 阅读 · 1 评论 -
【换句话说】【等价描述】—— 定义及概念的不同描述
1. 二叉树普通定义:在计算机科学中,二叉树是每个结点最多有两个子树(≤2≤2\leq 2,节点没有子树,节点有一个子树,节点有两个子树)的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。递归定义:二叉树 TTT 是定义在有限节点集上的结构,它或者不包含任何节点,或者包含三个不相交的节点的集合: 一个根节点一棵称为左子树的二叉树(...原创 2018-08-01 08:30:44 · 1472 阅读 · 0 评论 -
python 一题多解 —— ndarray 一维数组的拼接
字典,无他,建立键值对(key-value pair); 1. key 一定唯一,不允许重复;1. 使用字典的情况字符与函数对象oeprators = {'+': add, '-': sub, '*': mul, '/': div}字符与优先级priority = {'(': 1, '+': 3, '-': 3, '*': 5, '/': 5}原创 2016-08-12 19:14:41 · 1403 阅读 · 0 评论 -
一题多解 —— 判断一个数是否为奇数
对 2 取模,是否为 1?(负奇数对 2 取模,为 -1)jshell> 5 % 2$1 ==> 1jshell> -5 % 2$2 ==> -1同 1 相与;jshell> 5 & 1$3 ==> 1jshell> -5 & 1$4 ==> 1所以num & 1 == 1判断一个数是否为奇...原创 2018-09-05 22:23:50 · 2212 阅读 · 0 评论 -
一题多解 —— linux 日志文件(log)reload 重新载入
1. tail -F等同于–follow=name –retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪 也即可以间接实现从日志文件末尾,不断载入显示的过程;2. vim命令模式下::e :e!:重新载入,忽略已经进行的修改;原创 2017-09-27 23:16:01 · 1382 阅读 · 0 评论 -
一题多解 —— 二项式分布的期望和方差的计算
1. 定义法2. 指示器变量(Indicator variable)定义随机变量 xi∼b(1,μ)x_i\sim b(1, \mu),xi,i=1,2,…,Nx_i, i=1,2,\ldots,N 彼此独立同分布,由相互独立的随机变量,以相互独立的随机变量 x,zx, z 为例,证明见 随机变量统计独立性的相关证明原创 2017-07-19 23:02:17 · 5561 阅读 · 0 评论 -
一题多解(三)—— Python 字符串的拼接
1. formatdef event_log(name, time): print('Event: {}, happens at {}'.format(name, str(time)))2. 使用 + 连接符def event_log(name, time): print('Event: ' + name + ', happens at ' + str(time))3. 使用占位符d原创 2016-08-31 10:13:55 · 1009 阅读 · 0 评论 -
一题多解(一) —— list(Python)判空(以及 is 与 == 的区别)
>> l = []1. ==>> l == []True2. not>> not lTrue3. 注意 is 与 == 的区别原创 2016-08-22 19:18:27 · 2725 阅读 · 0 评论 -
一题多解(四)—— 数组中唯一出现 2 次的数
更具体地讲,某数组长度为 N+1(乱序),整个数组取遍 1~N 的全部 N 个数,显然其中一个数出现了两次,找出这个数;(1)将这 N + 1 个数,以及 1 ~ N 这 N 个数(数组中出现 2 次 ⇒ 出现三次),整体异或,最终得到的结果即为这个出现两次的数;(2)全部相加 - (1+N)*N/2注意相加(相乘)时数值溢出的可能;原创 2016-09-24 13:40:02 · 1030 阅读 · 0 评论 -
一题多解(五) —— topK(数组中第 k 大/小的数)
根据对称性,第 k 大和第 k 小,在实现上,是一致的,我们就以第 k 小为例,进行说明:原创 2016-09-27 21:59:09 · 1161 阅读 · 0 评论 -
一题多解(六)—— 一个数二进制形式 1 的个数
1. n & n-12. 递归原创 2016-10-16 12:54:50 · 906 阅读 · 0 评论 -
一题多解(七)—— 取两数的最大值
法一:使用自带的 max 函数法二:三目运算符;x = a > b ? a : b;法二:使用布尔运算(返回 0/1)x = (a>b)*a + (b>=a)*b;原创 2016-11-17 23:58:30 · 1282 阅读 · 0 评论 -
一题多解(八)—— 矩阵上三角(下三角)的访问
访问矩阵的上三角或者下三角,一般出现在矩阵为对角方阵(避免重复访问)的情况:方法之一:for i in range(n): for j in range(i+1): ...方法之二:for i in range(n): for j in range(n): if i < j: continue A[i][j]原创 2016-12-08 11:24:38 · 1615 阅读 · 0 评论 -
算法 Tricks(六)—— 判断一个数是否为完全平方数
int(sqrt(n)) * int(sqrt(n)) == n ? 1:0;原创 2016-11-17 17:29:32 · 4969 阅读 · 0 评论 -
一题多解 —— $?(命令返回状态)的检验
使用 $? 对命令进行执行状态的校验:command if [ "$?"-ne 0]; then echo "command failed"; exit 1; fi 可被替换为:方式之一:利用逻辑表达式的骤死式语义,只有在 command执行失败时,才会去执行后续的 echo 语句;command || { echo "command failed"; e原创 2017-07-11 11:25:06 · 784 阅读 · 0 评论 -
一题多解 —— 同时找到序列的最大值最小值
1. 普通方法分别独立地找出最小值和最大值,则在 nn 个元素中,各需要 n−1n-1 次比较,共需 2n−22n-2 次比较。如对于最小值问题:MINIMUM(A)1 MIN = A[1]2 for i = 2 to A.length3 if A[i] < MIN4 MIN = A[i]5 return MIN 2. 快速方法对输入元原创 2017-07-20 09:46:22 · 1942 阅读 · 0 评论 -
一题多解 —— python ndarray 的 value_counts
1. np.expand_dims原创 2017-04-29 20:53:26 · 2639 阅读 · 0 评论