
基础算法
文章平均质量分 65
董一峰
苟有恒,何必三更眠五更起;最无益,莫过一日曝十日寒。
展开
-
【每日一题】搜索二叉树的最大拓扑结构
给定一棵二叉树的头节点 head,已知所有节点的值都不一样,返回其中最大的且符合搜索二叉树的最大拓扑结构的大小。拓扑结构:不是子树,只要能连起来的结构都算。原创 2022-10-27 13:39:26 · 1085 阅读 · 0 评论 -
【每日一题】正数分裂方法数
给定一个正数 1,裂开的方法有一种:(1)给定一个正数 2,裂开的方法有一种:(1,1),(2)给定一个正数 3,裂开的方法有一种:(1,1,1),(1,2),(3)给定一个正数 4,裂开的方法有一种:(1,1,1,1),(1,1,2),(1,3),(2,2),(4)给定一个正数 n,求裂开的方法数。原创 2022-10-25 13:43:22 · 291 阅读 · 0 评论 -
[每日一题] 01背包问题
给定 n 种物品和一背包。物品 i 的重量是 $w_i$,其价值为$v_i$ ,背包的容量为 C。问应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 对于一种物品,要么装入背包,要么不装。原创 2022-10-13 20:57:27 · 3054 阅读 · 0 评论 -
[每日一题] 按摩师
一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。f(n) 数组长度为 n 时,返回此时最长的分钟数。动态规划的模式:从左向右尝试。原创 2022-10-12 20:46:29 · 218 阅读 · 0 评论 -
【每日一题】整数拆分
两个正整数的和,并使这些整数的乘积最大化。返回你可以获得的最大乘积。假设 f ( k ) 表示 n = k 时,获得的最大乘积。在尝试 0 到 n 所有可能性后,去最大值。i = 1 尝试 k - i 是否保留。原创 2022-10-12 18:55:40 · 382 阅读 · 0 评论 -
【每日一题】换钱方法数三
现有 n1 + n2 种面值的硬币,其中前 n1 种为普通币,可以取任意枚,后 n2 种为纪念币,每种最多只能取一枚,每种硬币有一个面值,问能用多少种方法拼出 m 个面值?原创 2022-09-22 20:41:20 · 109 阅读 · 0 评论 -
【每日一题】换钱方法数二
给定数组 arr,arr 中所有的值都为正整数。每个值代表一种面值的货币,每种面值的货币只可使用一张,再给定一个整数 aim 代表要找的钱数,求换钱有多少种方法。原创 2022-09-22 20:39:17 · 121 阅读 · 0 评论 -
【每日一题】换钱方法数
给定数组 arr,arr 中所有的值都为正整数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数 aim 代表要找的钱数,求换钱有多少种方法。原创 2022-09-22 20:26:10 · 308 阅读 · 0 评论 -
【每日一题】土豪打榜
CC 里面有一个土豪很喜欢一位女直播 kiki 唱歌,平时就经常给她点赞、送礼、私聊。最近 CC 直播平台在举行中秋之星直播唱歌比赛,假设一开始该女主播的初始人气值为 start,能够晋升下一轮人气需要刚好达到 end,土豪给主播增加人气可以采取一下三种方法1. 点赞;花费 x C币,人气 + 22. 送礼;花费 y C 币,人气 * 23. 私聊;花费 z C币,人气 - 2其中 end 远大于 start 且 end 为偶数,请写一个程序帮助土豪计算一下,最少花费多少 C 币就能帮助该主播 ki原创 2022-09-22 20:15:49 · 275 阅读 · 0 评论 -
二叉树的递归套路
前提:假设以 X 为头结点树型DP(Dynamic programming),满足最优子结构性质的问题,都可以用树型 DP 求解。原创 2022-09-22 18:31:06 · 320 阅读 · 0 评论 -
算法题技巧一:打表法
能用打表法的题目特征这样的大概有四成可以使用打表法打表法步骤。原创 2022-09-22 18:21:58 · 1146 阅读 · 2 评论 -
在两个排序数组中找到上中位数
给定两个有序数组 arr1 和 arr2 ,已知两个数组的长度都为 N,求两个数组中所有数的上中位数。【举例】总共有 8 个数,那么上中位数是第 4 小的数,所以返回 3总共有 6 个数,那么上中位数是第 3 小的数,所以返回 2【要求】时间复杂度为 O( log N ),额外空间复杂度 O(1)原创 2022-09-22 14:27:43 · 190 阅读 · 0 评论 -
Query Kmeans
通过 kmeans 对用户 Query 进行聚类原创 2022-09-14 14:07:58 · 1013 阅读 · 2 评论 -
跳表(SkipLists)
跳表使用概率保持数据平衡性原创 2017-08-23 14:41:03 · 335 阅读 · 0 评论 -
三个数找出大小为中间的数(Python)
对于三个,1,2,3 .根据大小找出中间的数据 2.这种问题其实是”查找第K小的数“的问题。但是对于只有三个数,用那样的算法有些大材小用。代码如下def Mid(a,b,c): if c<a and c<b:return b if b<a else a r=a if a>b else b return r if r 算法思想:1.当第三个数原创 2013-05-14 19:44:29 · 15760 阅读 · 0 评论 -
查找兄弟单词
问题:一个单词单词字母交换,可得另一个单词,如army->mary,成为兄弟单词。提供一个单词,在字典中找到它的兄弟。描述数据结构和查询过程。所用数据结构为Hash表步骤:1.构建Hash表 遍历单词库,先对每个单词做一个按字母排序,如:army:排序后为amry.将amry Hash一下作为Hash建,将army作为值。对于兄弟单词ma原创 2013-05-15 09:32:42 · 774 阅读 · 0 评论 -
第六章 堆排序(heapsort)
堆排序,维护堆的性质,建堆,优先级队列,ExtractMax,IncreaseKey,新增节点,Python实现,算法导论第六章原创 2014-02-11 13:56:35 · 929 阅读 · 0 评论 -
Problem 1 Multiples of 3 and 5
Problem 1 Multiples of 3 and 5 project euler原创 2017-07-13 16:49:59 · 288 阅读 · 0 评论 -
Problem 10 Summation of primes
project euler Problem 10 Summation of primesThe sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.Find the sum of all the primes below two million.原创 2017-07-21 12:26:54 · 332 阅读 · 0 评论 -
Problem 11 Largest product in a grid
Problem 11 Largest product in a gridIn the 20×20 grid below, four numbers along a diagonal line have been marked in red.The product of these numbers is 26 × 63 × 78 × 14 = 1788696.What is the greatest product of four adjacent numbers in the same directi原创 2017-07-21 12:30:45 · 379 阅读 · 0 评论 -
素数判断(Python 版)
# 判断 candidate 是否是素数def IsPrime(candidate): if ((candidate&1)==0): # 是偶数,除了2,其他偶数全部不是质数 return candidate==2 limit=int(math.sqrt(candidate)) print('limint',limit) for i in ra原创 2013-05-08 23:04:55 · 1674 阅读 · 0 评论