万门
秃秃兔不秃
学了三年还是小白
展开
-
【矩阵篇】九宫图/n宫图生成——Merzirac法生成奇阶幻方 Python实现
Merzirac法当n为奇数时,我们称幻方为奇阶幻方。Merzirac法生成奇阶幻方:在第一行居中的方格内放1以后按顺序,向右斜上方填写数字。(称为斜步)若出到方阵上方,把该数字填到本该所在列的最下格。若出到方阵右方,把该数字填到本该所在行的最左格。若右上已有数字,或出到方阵右上(即对角线方向), 则把数字填入上一个数字的下一格,即在n的下方放入n+1,(称为跳步),再按上述方法放...原创 2020-03-09 23:39:40 · 1461 阅读 · 1 评论 -
【矩阵篇】矩阵中的0——将矩阵中为0的元素所在行列清零 Python实现
题目描述:在一个M行N列的矩阵中,如果查找到一个元素为“0”,将其所在的行和列的元素都设置为“0”。def zero(matrix): #设置两个数组,一个记录0元素的行号,一个记录0元素的列号。再将该行该列全变为0 row = [True for i in range(0,len(matrix))] col = [True for j in range(0,len(m...原创 2020-03-09 21:56:39 · 2668 阅读 · 0 评论 -
用Python实现最简单的扫雷小游戏——思路+代码
题目描述编写一个拥有三个参数(m, n, p) 的程序:并生成一个m行n列的布尔类型数组,依据概率p填入“地雷”。在扫雷游戏中,已被占有的一格为“地雷”,未被占有的 一格为“安全”格。用星号“*”表示“地雷”,用半角句号“.”表示“安全” 格,打印出此数组。然后,使用邻近(上、下、左、右及对角线)地雷的数量来 替换安全格的句号并打印结果。代码:import randomdef mines...原创 2020-03-09 19:27:34 · 13341 阅读 · 1 评论 -
求集合的所有子集——思路+Python实现(两种方法)
方法一:每一次遍历,都在前面已有的集合里,再加上一个元素。举个例子,假设有a,b,c三个元素,现在要求他们的子集。如下图所示,每一次遍历,都在前面已有的集合里再加上当前的元素。虽然说看起来挺简单的,用代码实现起来可能会走很多弯路哦。大家可以先试一下再看答案。显然用两个for循环就能完成。代码一:def subsets(nums): result = [[]] for ...原创 2020-02-19 17:18:21 · 6011 阅读 · 1 评论 -
【递归】整数转换(数学表达式)——思路+Python实现
整数转换(数学表达式)题目描述:给定两个整数 a ≤ b, 编写一个程序,通过加1和乘以2的方式,用最少的步骤将a变换成b.例如, 当b=23,a = 5 时,23 = ((5 * 2 + 1) * 2 + 1) 当b=113,a = 11 时,113 = ((((11 + 1) + 1) + 1) * 2 * 2 * 2 + 1)思路:首先a和b的关系分为两种(b大a小,a要变...原创 2020-02-19 15:05:16 · 865 阅读 · 0 评论 -
斐波那契数列——Python的三种实现方法
首先,斐波那契数列指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)虽说递归入门的时候都会做斐波那契数列,但是用递归来算斐波那契数列真不是个好办法。这里推荐大家可以直接用for循环做,话不多说直接上代码:#O(n)def fi...原创 2020-02-18 18:03:50 · 1980 阅读 · 0 评论 -
面试题——找到1-n中丢失的数字及其变形题
找到丢失的数字现在你手上有n-1个数字,这些数字的范围是 [1 , n]问题1:如果这n-1个数字中没有重复的数字,你手上的数字丢失了一个。请编写一段高效的找到该缺失数字的代码。问题2:如何这n-1个数字中,有的数字出现了2次,有的数字出现了1次,有的数字没有出现,请编写一段高效的找到该缺失数字的代码。问题1的解:这里提供两种思路:方法一:先求和,然后减去每一个数字。算是效率比较高...原创 2020-02-18 16:43:07 · 1272 阅读 · 0 评论 -
万门——数据结构与算法(Python语言)学习笔记
数据结构与算法(Python语言)第一章时间复杂度时间复杂度的简介:运行时间会随着输入的大小如何变化最好的情况: 运行时间的上限 (最少运行时间)由最简单的输入决定提供了所有输入的最终优化目标最差的情况:运行时间的下限 (最多运行时间)由最复杂的输入决定提供了所有输入的保障时间平均情况: 随机输入的运行时间的期望需要建立随机输入的模型是一种评价算法表现的方...原创 2020-02-15 22:17:04 · 456 阅读 · 2 评论 -
洗牌(两种方式)以及检验正确性——Python
洗牌问题一个好的洗牌:每一张牌出现在每一个位置的概率应该是相等的。方法一:调用random.shuffle(cards) ——不熟悉的random库的欢迎点击这里查看random的用法import randomdef shuffle_system(cards): random.shuffle(cards) 方法二:思路:假设是a-j一共10张牌,位置分别在...原创 2020-02-15 14:07:06 · 703 阅读 · 0 评论