![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
文章平均质量分 54
LeetCode
Mingvvv
形而上学,知行合一
展开
-
寻找两个正序数组的中位数
题目寻找两个正序数组的中位数解答# LeetCode 二分法 官方解答整理# 若数组的长度 n 为奇数,则中位数就是下标为 n/2 的值,若 n 为偶数,那么中位数就是下标为 n/2 和 (n/2+1) 的和的平均值# 所以问题可以转化为,对于一个给定的数 k ,如何快速有效的实现找到第 k 个小的数,即拥有 k-1 个小于等于自己的数def get_median(a,b): if (len(a)+len(b))%2 == 1 : return (find_k(a,b,(转载 2021-12-20 13:52:11 · 68 阅读 · 0 评论 -
获取集合、数组的全部子集(一)
前言想起来之前写过一段业务代码来处理库存中的商品。逻辑如下:仓库中存有多个箱子,每个箱子里面放着一定数量的商品,商品数量不一,现在我要分析出这几箱中商品数量之和最接近目标出库数量的箱子的信息。以下方法并不一定是最优方法,但可能会适合一些场景。除此之外可以使用 递归+回溯 的方式去处理组合、子集之类的问题,对于处理集合或数组中的重复元素更加有优势。分析因为每个箱子都是独立存在的,所以在这个列表里面不存在重复元素一说,分析起来相对简单。我只要能够知道所有组合方式,并计算他们与出库数量的差值,获取最原创 2021-12-16 15:22:54 · 261 阅读 · 0 评论 -
获取集合、数组的全部子集(二)
文章目录前言百度百科递归回溯实例题目解析代码前言接上一文,使用递归加回溯的方式查找所有的子集百度百科递归程序调用自身的编程技巧称为递归回溯回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。许多复杂的,规模较原创 2021-12-18 23:52:29 · 393 阅读 · 0 评论