数据结构
整理一些遇到的比较好的数据结构的题目,主要会以python为主
棉马咪
这个作者很懒,什么都没留下…
展开
-
剑指Offer_NO.3
方法1直接排序,然后遍历找不同 时间复杂度较高O(nlgn)# include <iostream># include <algorithm>using namespace std;int main(){ int a[10] = {0,1,5,2,6,2,5,2,2,5}; int i=0; sort(a, a+10); for (i=1; i<10; ++i){ if(a[i] == a[i-1]){ .原创 2021-03-24 01:18:43 · 68 阅读 · 0 评论 -
万门大学_数据结构与算法_DAY3
Day3问题1问题2问题1实现斐波那契数列1,1,2,3,5,8,13,21,…def fibonacci1(n): assert(n>=0) if (n <= 2): return 1 return fibonacci1(n-1) + fibonacci1(n-2)fibonacci1(8)result---------------------------------------21#这种写法展开就是一棵二叉树(当前值由前两个值决定)原创 2021-03-01 02:05:54 · 169 阅读 · 2 评论 -
万门大学_数据结构与算法_DAY2
Day2动态数组插入的时间复杂度问题1问题2动态数组插入的时间复杂度动态数组并不是真正意义上的动态的内存,而是一块连续的内存,当添加新的元素时,容量已经等于当前的大小的时候(存不下了),执行下面3步:1.重新开辟一块大小为当前容量两倍的数组2.把原数据拷贝过去3.释放掉旧的数组(垃圾回收机制,Java和python编译器会帮助你完成)假如划定了一片大小为10的内存区间a,则:添加第1个元素(a.append(X))事件复杂度为O(1)添加第2个元素(a.append(X))事件复杂度为O原创 2021-02-08 23:56:35 · 274 阅读 · 0 评论 -
三门问题
问题解析的分析链接.这幅图片也非常的直观:import randomdef guess_car(N, change=False): # N表示一共有多少门 num_list = list(range(N)) car_num = random.randint(0, N-1) #正真的车所在的门编号 my_num = random.randint(0, N-1) # 观众猜测的编号 # 如果不换编号的话: if change == False:原创 2020-12-23 12:08:24 · 131 阅读 · 0 评论 -
打印九九乘法表(对齐问题)
方法一for i in range(1,10): for j in range(1,i+1): print("{}*{}={:<5}".format(j, i, i*j), end="") # 关键是{:<5} print("")方法二print("\n".join([" ".join(["{}*{}={:<5}".format(j, i, i*j, end=" ") for j in range(1,i+1)])for i in range.原创 2020-12-22 23:00:11 · 688 阅读 · 0 评论 -
数质数
题目:给定一个正整数n,计算出小于等于n的质数有多少个。 比如17,则返回7,因为小于等于7的质数有2,3,5,7,13,17常规做法:从2-N开始循环,然后取到一个数字i,判断在2至i\sqrt{i}i的范围内是否会被整除。这样的坏处是:两层for循环,时间开销大。import mathdef count_prime1(N): count = 0 for i in range(2, N+1): is_prime = False for j i.原创 2020-12-22 14:13:51 · 418 阅读 · 0 评论 -
随机洗牌
随机洗牌问题描述:给定一个0-9的数据,达到随机洗牌的效果,即让每个数字在每个位置上出现的概率一样,约为1/10方法一:直接调用python中内置函数import randomdef shuffle_system(cards): random.shuffle(cards) def test_shuffle(f): result = [[0 for i in range(10)] for j in range(10)] for i in range(10000)原创 2020-12-22 00:56:51 · 961 阅读 · 0 评论