![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 81
Bling_
这个作者很懒,什么都没留下…
展开
-
求子集算法(有重复数字&无重复数字)/ 全排列算法/ 组合算法
本文介绍给定求子集算法,注意是数组而不是集合,这意味着数组中可能有重复元素。因此本文会分别介绍无重复数字(集合)求子集,和有重复数字求子集。原创 2022-11-05 21:11:34 · 1632 阅读 · 1 评论 -
组合算法/全排列算法/求子集算法
目录写在前面组合写在前面组合从后开始选:class Solution: def combine(self, n: int, k: int) -> List[List[int]]: ans=[] def sub_combine(n,k,lst=[]): #n个数里面选k个,保存在lst里 if(k==0): #已经选完 ans.append([i for i in lst])原创 2022-10-12 11:38:09 · 1412 阅读 · 0 评论 -
全排列算法(无重复数字全排列/有重复数字全排列)/ 组合算法/ 求子集算法
无重复/有重复数字全排列相关算法原创 2022-05-19 09:00:00 · 9372 阅读 · 0 评论 -
洛谷P1182-数列分段(详解)
写在原来的地方:点这里题目给定一个长度为n的数列A,要求将它分为m段,要求每段连续,且每段和的最大值最小。N<=10e5,m<=n,Ai之和不超过10e9。这题一看就知道我不会。所以很老实的去看了看题解。题解也真是避重就轻,尼玛的重要的地方就说:这个要自己思考一下……好吧,还好有代码。讲讲我自己的理解。首先这个数字最大值一定存在(玄学。既然存在那一定找得到,即使有时候错过...原创 2019-08-16 17:38:56 · 1469 阅读 · 0 评论 -
01背包+分组背包(一维/二维/搜索
个人博客地址(原文:点这里上面的网址中写了01背包/分组背包的一维,二维数组方法,还有搜索法以及自己的一些思考。个人对于网上分组背包的二维转移方程觉得还不太完善(或者我自己理解的不太对),而且没有找到很完全的代码~~(可能恰好没找到)~~ ,所以就自己写了,有附题目地址,如果想看二维数组分组背包,直接拉到最后,前面都是废话。不想看原地址的,下面是原文:一维版01背包洛谷P1048采药...原创 2019-08-16 17:23:53 · 444 阅读 · 0 评论 -
类似于可放回抽样的排列问题
刘汝佳老师的紫薯写了不重复排列问题以及重复排列问题,这可以类比放回抽样。那如果有一个不放回抽样问题呢?比如:用户给定一个字符串长度,字符串中每个字符可以取’a’-‘z’,请输出所有符合条件的字符串。这类问题和紫薯中的排列问题不一样的地方在于~~(紫薯还只看了一点,所以不清楚里面有没有这类算法,但是可能因为这个算法太简单不讲也可能。。)~~...原创 2019-03-23 20:51:05 · 1082 阅读 · 0 评论 -
【并查集】力扣947.移除最多的同行或同列石头 (一维/二维)深度搜索&并查集(4种题解)
坐标轴深度搜索版:class Solution: def removeStones(self, stones: List[List[int]]) -> int: # 二维深搜版 lens=len(stones) xdict={} # key:坐标x value:横坐标为x的纵坐标集合 ydict={} # key:坐标y value:纵坐标为y的横坐标集合 vis=set() #visit原创 2021-06-01 10:45:30 · 425 阅读 · 1 评论 -
QickSort 快速排序(快排)详细复盘 / 思路+代码+注意点(python实现)
排序实战传送门:leetcode排序(快排可通过)快排前前后后写了也不知道多少次,大一下还是大二上第一次写快排,但是因为对递归还不懂,所以总是只记得个大概,后来在力扣上刷题也写过好几次,但是每次写都会犯同样的错误,于是好好复盘一下。同时也从头梳理一遍快排,直白但详细写下我的理解,希望对读者有一定帮助。快排采用分治的思想,用递归的方式实现排序,时间复杂度O(nlogn)。但在最差的情况下,比如要升序排序但是原始数组是逆序,每次递归都只比上一次递归少一个数,退化为冒泡排序,此时时间复杂度为O(n²)。#基原创 2021-04-20 14:30:54 · 285 阅读 · 2 评论