摘要:不能一、题目:切绳子 有n根绳子,第i根绳子长度为Li,现在需要M根等长的绳子,你可以对n根绳子进行任意裁剪(不能拼接),计算出这m根绳子最长的长度是多少。 输入:第一行2个正整数N,M,表示N根原始的绳子,和最终需要M根绳子数 第二行包含N 个整数,第i个整数Li表示第i根绳子的长度 其中,1≤N
阅读全文
摘要:一、在数组中查找局部最小的数 思路:二分查找 代码: 二、题目:在循环有序数组中查找某个数 循环有序数组: 指的是,将一个有序数组循环左/右移动若干距离之后变成的数组。如,[1,2,3,4,5]循环右移3位,就成为[4,5,1,2,3]。该数组的特点是,其中包含着一个转折点。转折点左右两侧的子数组都
阅读全文
摘要:一、单源最短路径:迪杰斯特拉【权值需非负】 目标:从某个起点出发,找到到各个点的最短距离。 思路:一个S集合存已经遍历的顶点,一个Q集合存未遍历的顶点。一个dist列表存从初始点到当前点的最短路径,即dist[i] 表示初始点到i所需的最短距离。 如果用堆优先队列来找dist中最小值,时间复杂度为O
阅读全文
摘要:一、Prim算法实现 思路: 1、一个存储最小树的边列表mst、一个存储最小树的点集合used、一个堆,排序最小树边缘的最小边。堆顶为最小值。 2、建立邻接表,如{'A':[(7,'A','B'),(5,'A','D')]} 3、随机选初始点 4、排序初始点的边权重,建立堆 代码: 二、村庄造路问题
阅读全文
摘要:一、题目:解题报告,连除 399 已经给出了某些变量的比值,求新的变量的比值。如果这个变量没有出现过,或者不可到达,那么返回-1. DFS思路: 题目中给了顶点和顶点之间的关系,其实就是制定了这个图的样子。然后要求的新的比值其实就是从一个顶点到达另外一个顶点的路径,并且把这条路径上所有的权重相乘。
阅读全文
摘要:一、题目:课程排表 210 课程表上有一些课,是必须有修学分的先后顺序的,必须要求在上完某些课的情况下才能上下一门。问是否有方案修完所有的课程?如果有的话请返回其中一个符合要求的路径,否则返回[]. 例子1: Input: 2, [[1,0]] Output: [0,1]Explanation: T
阅读全文
摘要:一、图的入度和出度: 1、图的入度和出度 二、图的遍历:BFS、DFS 1、DAG的DFS:连除解题 2、图的DFS: 3、图的BFS 三、有向无环图DAG(拓扑排序): 1、DAG的拓扑排序:课表排序 四、关键路径(AOE网) 1、关键路径算法 五、最小代价生成树 1、prime算法 2、克鲁斯卡
阅读全文
摘要:一、题目: 在一个小镇里,按从 1 到 N 标记了 N 个人。传言称,这些人中有一个是小镇上的秘密法官。 如果小镇的法官真的存在,那么: 给定数组 trust,该数组由信任对 trust[i] = [a, b] 组成,表示标记为 a 的人信任标记为 b 的人。 如果小镇存在秘密法官并且可以确定他的身
阅读全文
摘要:一、题目 手机的九宫格图案解锁总共能绘出多少种图案? 需要满足的要求有:至少经过四个点;不能重复经过同一个点;路径上的中间点不能跳过(如从1到3一定会经过2);如果中间的点是之前已经用过的,那么这个点就可以被跳过(如213,因为2已经被用过,1就可以越过2与3连接,132是不允许的)。 需要满足的要
阅读全文
摘要:一、树的遍历: 二、树的反序列化: 三、树的路径: 四、树的高度 五、两颗树 六、树【栈】 七、树【DFS】 八、树总 九、二叉搜索树:
阅读全文
摘要:一、栈和队列(1) 实现 二、栈和队列(2) 排序 三、栈和队列(3) 算法 一、采用栈找到元素左边和右边第一个比其小的数 二、采用栈找到元素左边和右边第一个比这个元素大的值。 三、找到下一个更大的元素: 就是二中找到右边大的元素。
阅读全文
摘要:题目: 前三题都可以用集合和来求。【sum(set(nums))*N-sum(nums)】 1、数组中别的数都出现2次,只有一个数出现1次,找出该数。 2、数组中别的数都出现3次,只有一个数出现1次,找出该数。 3、数组中别的数都出现N次,只有一个数出现1次,找出该数。 4、数组中别的数都出现2次,
阅读全文
摘要:目录 找到字符串的最长无重复字符子串 字符串中的第一个唯一字符 字符串的字典序最长子序列 最小包含子串的长度 字符串的全排列(python) 一、找到字符串的最长无重复字符子串 给定一个字符串str,返回str的最长无重复字符子串的长度。 举例: str = 'abcd',返回4. str = 'a
阅读全文
摘要:目录 (字符串的匹配) 正则化表达式匹配【含通配符】 正则化(数字字母)匹配【if re.search('^[0-9a-zA-Z]+$',ss): return True】 字符串匹配问题、赎金信(一个字符串字母是不是都在另一个字符串中) 同构字符串 单词模式 查找和替换模式 判断字符串A是否包含字
阅读全文
摘要:字符串的遍历 字符串的统计 判断字符数组中是否所有的字符都只出现过一次【一行代码判断字符串中是否有重复值】(python) 统计字符串中连续的重复字符个数(python) 找到被指的新类型字符 如何截取包含中文的字符串(python) 在有序但含有空的数组中查找字符串 0左边必有1的二进制字符串数量
阅读全文
摘要:字符串替换 字符串的替换 字符串的调整 替换字符串中连续出现的指定字符串 去掉字符串中连续出现k个0的子串 一、字符串的替换【倒着复制】 原问题思路: 遍历第一遍:得到两个信息,chas的左半区有多大,记为len,左半区的空格有多少,记为num。 遍历第一遍:得到两个信息,chas的左半区有多大,记
阅读全文
摘要:目录 1、打印矩阵 转圈打印矩阵 将正方形矩阵顺时针转动90度 “之”字形打印矩阵 2、数组的遍历查找 一个数组,所有数都出现了两次(三次),只有一个数出现了一次,返回这个数, 一个1-n的数,少了一个,找出来 在数组中找到出现次数大于N/K的数【删除不同的数】 在行列都排好序的矩阵中找数 奇数下标
阅读全文
摘要:翻转字符串(python) 翻转中间由各种符号隔开的字符串 单词反转(只允许O(1)空间) 旋转字符串,n位字符串,循环右移m位,要求时间线性,空间n 旋转10次字符串 把一个字符串的小写字母放到前面,大写放到后面,保持原有的顺序。(python) 一、反转字符串 思路1:采用中间变量替换 思路2:
阅读全文
摘要:目录 将整数字符串转成整数值{python) 字符串中数字子串的求和 公式字符串求值 实现字符串数字的减法 基本计算器(1) 基本计算器(2) 基本计算器(3) 一、题目:将整数字符串转成整数值{python) 给定一个字符串str,如果str符合日常书写的整数形式,并且属于32位整数的范围,返回所
阅读全文
摘要:一、目录 添加最少字符使字符串整体都是回文字符串 回文最少分割数 判断字符串是否是回文串 判断字符串本身是字符串或者删除一个字符后成为回文串 判断一个字符串在至多删除k个字符后是否为回文串 删除字符使字符串整体是回文串,最少多少种方案 最长回文子串 1、添加最少字符使字符串整体都是回文字符串 思路:
阅读全文
摘要:目录: (1)回文字符串 添加最少字符使字符串整体都是回文字符串 回文最少分割数 判断字符串是否是回文串 判断字符串本身是字符串或者删除一个字符后成为回文串 判断一个字符串在至多删除k个字符后是否为回文串 删除字符使字符串整体是回文串,最少多少种方案 最长回文子串 (2)括号字符串 括号字符串的有效
阅读全文
摘要:目录 1、链表建立、遍历和插入 实现一个链表(建立) 复制含有随机指针节点的链表(建立) 将搜索二叉树转换成双向链表(建立) 打印两个有序链表的公共部分(遍历) 判断一个链表是否为回文结构(遍历) 如何展出单链表中的倒数第k个元素(遍历) 向有序的环形单链表中插入新节点(插入) 2、链表删除 如何从
阅读全文