- 博客(35)
- 收藏
- 关注
原创 剑指offer题解(python)----JZ12 矩阵中的路径
题目请设计一个函数,用来判断在一个n乘m的矩阵中是否存在一条包含某长度为len的字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。数据范围0≤n,m≤20,1≤len≤25进阶:时间复杂度O(n^2),空间复杂度O(n^2 )代码class Solution: def hasPath(self , matrix: List[List[str]], w..
2022-02-26 10:24:25
203
原创 RSA算法详解及手算过程
其余算法详解及实现见专栏合集~RSA算法详解算法过程(i)密钥生成密钥包括公钥n,e和私钥d。首先确定两个大素数p和q,计算n,有:确定了n后,可以计算出:根据e和的互质,选取一个小于的e。找到e后,根据 , 可计算得d。(ii)加密算法约定明文为M,密文为C,公钥对{e,n},私钥对{d,n}加密过程:(iii)解密算法算法特点(i)基于数论欧几里得算法、离散对数、欧拉函数、欧拉定理、费马小定理、乘法逆元等。(ii)大数分解的陷门
2022-02-23 18:02:01
2638
1
原创 破译凯撒密码(C语言)附运行结果
WeChall上的一题,把代码放在这里算作学习的一个过程。什么是凯撒密码它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。 ----百度百科分析问题也就是说,在知道密钥的情况下,用取余的方式即可将明文转换为密文;但在不知道密文的情况下,则无法直接对密文进行转换。在文本长度较短的情况下,不适宜采用文本分析的方式来确定字符,因此直接采用暴力破解的形式,将密钥(偏
2022-02-23 17:19:47
1139
原创 剑指offer题解(C语言)----JZ05 替换空格(有python3版)
题目请实现一个函数,将一个字符串s中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。数据范围:0≤len(s)≤1000。保证字符串中的字符为大写英文字母、小写英文字母和空格中的一种。进阶:时间复杂度O(n),空间复杂度O(n) 。解析这题用python写会非常简单....但是还是来看一个C语言版本,这个版本在碰到长文本的时候会发生越界....我还是不能理解为什么...想法:这个代码的思想...
2022-02-22 23:52:36
711
原创 剑指offer题解(C语言)----JZ04 二维数组中的查找
题目在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。数据范围:矩阵的长宽满足 0≤n,m≤500, 矩阵中的值满足0≤val≤10^9。进阶:空间复杂度O(1),时间复杂度O(n+m)。解析方法一:暴力遍历法bool Find(int target, int** array, int arrayRowLen, int* arr...
2022-02-22 22:03:07
241
原创 剑指offer题解(C语言)----JZ03 数组中重复的数字
剑指offer系列的题目解析,算是自己做题的一些心得,做一题放一题,希望大家都能拿到想要的offer!
2022-02-22 21:29:22
261
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人