
Job Interview
技术面试中的问题
Buzz.Lightyear
Nobody got bug-free inside its DNA except Kendrick Lamar!
展开
-
O(logn) 时间复杂度
预先知道算法的复杂度是一回事,了解其后的原理是另一件事情。不管你是计算机科班出身还是想有效解决最优化问题,如果想要用自己的知识解决实际问题,你都必须理解时间复杂度。先从简单直观的 O(1) 和 O(n) 复杂度说起。O(1) 表示一次操作即可直接取得目标元素(比如字典或哈希表),O(n) 意味着先要检查 n 个元素来搜索目标,但是 O(log n) 是什么意思呢?你第一次听说 O(log n) 时间复杂度可能是在学二分搜索算法的时候。二分搜索一定有某种行为使其时间复杂度为 log n。我们来看看原创 2020-08-13 11:50:36 · 12039 阅读 · 4 评论 -
Linux 查看端口占用情况
在Linux使用过程中,需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过netstat命令进行简单查询netstat命令各个参数说明如下: -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序) -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。 -n : 不进行DNS轮询,显示IP(可以加速操作)即可显示当前服务器上所原创 2020-07-27 10:57:00 · 240 阅读 · 0 评论 -
How to weigh the efficiency of algorithm
算法效率衡量执行时间反应算法效率对于同一问题,我们给出了两种解决算法,在两种算法的实现中,我们对程序执行的时间进行了测算,发现两段程序执行的时间相差悬殊(214.583347秒相比于0.182897秒),由此我们可以得出结论:实现算法程序的执行时间可以反应出算法的效率,即算法的优劣。单靠时间值绝对可信吗?假设我们将第二次尝试的算法程序运行在一台配置古老性能低下的计算机中,情况会如何...原创 2020-04-19 09:11:29 · 173 阅读 · 0 评论 -
Intro of Algorithm
如果 a+b+c=1000,且 a^2+b^2=c^2(a,b,c 为自然数),如何求出所有a、b、c可能的组合?import timestart_time = time.time()# 注意是三重循环for a in range(0, 1001): for b in range(0, 1001): for c in range(0, 1001): ...原创 2020-04-19 08:56:14 · 135 阅读 · 0 评论 -
Python - 数字联盟 - 面试题
# 1. 写出输出结果class MyClass: class_name = "xiaobai" def __init__(self,*args): if args: self.class_name = args[0] def print_name(self): print("this class name:...原创 2019-12-19 18:07:14 · 176 阅读 · 0 评论 -
Python super( ) 菱形继承案例
经典的菱形继承案例,BC 继承 A,然后 D 继承 BC,创造一个 D 的对象。 ---> B ---A --| |--> D ---> C ---使用 super() 可以很好地避免构造函数被调用两次。在super机制里可以保证公共父类仅被执行一次,至于执行的顺序,是按照MRO(Method Resolution Order)...原创 2019-12-18 17:28:13 · 497 阅读 · 0 评论 -
Python super( ) method
描述super()函数是用于调用父类(超类)的一个方法。super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。MRO Method Resolution Order 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。语法以下是 super() 方法的语法:...原创 2019-12-18 16:12:21 · 169 阅读 · 0 评论 -
Python @staticmethod 静态方法
Python staticmethod() 函数python staticmethod 返回函数的静态方法。该方法不强制要求传递参数,如下声明一个静态方法:class C(object): @staticmethod def f(arg1, arg2, ...): ...以上实例声明了静态方法f,从而可以实现实例化使用C().f(),当然也可以...原创 2019-12-17 17:27:21 · 221 阅读 · 1 评论 -
Python @classmethod 类方法
描述classmethod修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。语法classmethod 语法:classmethod参数无。返回值返回函数的类方法。实例以下实例展示了 classmethod 的使用方法:class A...原创 2019-12-17 18:01:09 · 568 阅读 · 0 评论 -
Data Structure and Algorithms - Bubble Sort
冒泡排序冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。 对每一...原创 2019-07-11 11:50:33 · 158 阅读 · 0 评论 -
Data Structure and Algorithms - Quick Sort
def quick_sort(alist, start, end): """快速排序""" # 递归的退出条件 if start >= end: return # 设定起始元素为要寻找位置的基准元素 mid = alist[start] # low为序列左边的由左向右移动的游标 low = start ...原创 2019-07-10 17:18:22 · 99 阅读 · 0 评论 -
Data Structure and Algorithms - Binary Search
算法:二分法查找适用于数据量较大时,但是数据需要先排好顺序。主要思想是:(设查找的数组区间为array[low, high])(1)确定该区间的中间位置K(2)将查找的值T与array[k]比较。若相等,查找成功返回此位置;否则确定新的查找区域,继续二分查找。区域确定如下:a.array[k]>T 由数组的有序性可知array[k,k+1,……,high]>T;故新的区间为ar...原创 2019-12-02 13:52:16 · 114 阅读 · 0 评论