
算法
文章平均质量分 64
AIGC Studio
计算机专业研究生,人工智能领域优质创者者,研究计算机视觉、深度学习、图像生成、GAN、VAE、Stable Diffusion、Sora、AIGC视觉大模型等,有三维重建、VTK开发、点云处理和医学图像处理等开发经验。曾在滴滴,小米任职算法工程师。
展开
-
LeetCode20天刷题计划之Day1
704. 二分查找给定一个n个元素有序的(升序)整型数组nums 和一个目标值target ,写一个函数搜索nums中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1提...原创 2022-04-20 18:26:31 · 237 阅读 · 0 评论 -
MIT6_006F11_lec01习题
MIT6.006是Algo Intro这门课,据说语言使用pythonLec01是讲peak finding,也就是峰值点具体为:一维情况下一个数组中a[i]>a[i-1]且a[i]>a[i+1]那么它是peak 边界时检查一个方向就ok二维情况下需要某元素x比四个相邻元素都大,边界也类似一维去处理只要找到一个peak返回就好复杂度:一维用...原创 2020-04-10 14:22:24 · 432 阅读 · 0 评论 -
多项式乘法 快速傅里叶变换
好久没写算法了,这才是本呀,还得拾起来.快速傅立叶变换实现两个多项式相乘,求乘积的系数例如,求(n^2 + 2*n + 1)(2*n^2 + 1),最高次幂为2输入: 2 2(两个多项式的最高次幂) 1 2 1(第一个多项式各项系数) 2 0 1(第二个多项式各项系数)输出:2 4 3 2 1即:2*n^4 + 4*n转载 2017-10-08 16:13:56 · 2452 阅读 · 0 评论 -
多项式乘法 快速傅里叶变换
好久没写算法了,这才是本呀,还得拾起来.快速傅立叶变换实现两个多项式相乘,求乘积的系数 例如,求(n^2 + 2*n + 1)(2*n^2 + 1),最高次幂为2 输入: 2 2(两个多项式的最高次幂) 1 2 1(第一个多项式各项系数) 2 0 1(第二个多项式各项系数)输出:2 4 3 2 1即:2*n^4 + 4*n^3 +...转载 2019-01-27 11:59:09 · 25333 阅读 · 0 评论 -
津津的储蓄计划
题目描述津津的零花钱一直都是自己管理。每个月的月初妈妈给津津300300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上20\%20%还给津津。因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于100100元或恰好100100元,她就会把...原创 2019-03-14 19:34:48 · 645 阅读 · 0 评论 -
不高兴的津津
题目描述津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。输入输出格式输入格...原创 2019-03-14 19:37:02 · 938 阅读 · 2 评论 -
P109买铅笔(洛谷)
题目描述P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物。她发现商店一共有33种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起 见,P老师决定只买同一种包装的铅笔。商店不允许将铅笔的包装拆开,因此P老师可能需要购买超过nn支铅笔才够给小朋 友们发礼物。现在P老师想知道,在商店每种包装的数量都足够的情况下,要买够至少nn支铅笔最少需要花费多少钱。输...原创 2019-03-16 11:30:38 · 392 阅读 · 0 评论 -
P1008 三连击(洛谷)
题目背景本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。题目描述将1,2, \cdots ,91,2,⋯,9共99个数分成33组,分别组成33个三位数,且使这33个三位数构成1:2:31:2:3的比例,试求出所有满足条件的33个三位数。输入输出格式输入格式:木有输入输出格式:若干行,每行33个数字。按照每行第11个数字...原创 2019-03-16 11:59:16 · 312 阅读 · 0 评论 -
P1047 校门外的树
题目描述某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是11米。我们可以把马路看成一个数轴,马路的一端在数轴00的位置,另一端在LL的位置;数轴上的每个整数点,即0,1,2,…,L0,1,2,…,L,都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区...原创 2019-03-18 17:13:48 · 236 阅读 · 1 评论 -
P1427 小鱼的数字游戏
题目描述小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字(长度不一定,以0结束,最多不超过100个,数字不超过2^32-1),记住了然后反着念出来(表示结束的数字0就不要念出来了)。这对小鱼的那点记忆力来说实在是太难了,你也不想想小鱼的整个脑袋才多大,其中一部分还是好吃的肉!所以请你帮小鱼编程解决这个问题。输入输出格式输入格式:一行内输入一串整数,以0结束,以空格间隔。...原创 2019-03-18 19:23:55 · 247 阅读 · 0 评论 -
P1428 小鱼比可爱
题目描述人比人,气死人;鱼比鱼,难死鱼。小鱼最近参加了一个“比可爱”比赛,比的是每只鱼的可爱程度。参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只鱼的可爱程度,很显然整数越大,表示这只鱼越可爱,而且任意两只鱼的可爱程度可能一样。由于所有的鱼头都朝向左边,所以每只鱼只能看见在它左边的鱼的可爱程度,它们心里都在计算,在自己的眼力范围内有多少只鱼不如自己可爱呢。请你帮...原创 2019-03-18 19:36:47 · 217 阅读 · 0 评论 -
P2141 珠心算测验
题目描述珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法。他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和?最近老师出了一些测验题,请你帮忙求出答案。(本题目...原创 2019-03-18 20:48:19 · 429 阅读 · 0 评论 -
P1567 统计天数
题目描述炎热的夏日,KC 非常的不爽。他宁可忍受北极的寒冷,也不愿忍受厦门的夏天。最近,他开始研究天气的变化。他希望用研究的结果预测未来的天气。经历千辛万苦,他收集了连续N(1 \leq N \leq 10^6)N(1≤N≤106)的最高气温数据。现在,他想知道最高气温一直上升的最长连续天数。输入输出格式输入格式:第 1 行:一个整数NN。1 \leq N \leq...原创 2019-03-18 21:43:02 · 547 阅读 · 0 评论 -
贪心算法之钱币找零问题
假设1元、2元、5元、10元、20元、50元、100元的纸币分别有c0, c1, c2, c3, c4, c5, c6张。现在要用这些钱来支付K元,至少要用多少张纸币?用贪心算法的思想,很显然,每一步尽可能用面值大的纸币即可。在日常生活中我们自然而然也是这么做的。在程序中已经事先将Value按照从小到大的顺序排好#include#includeusing namespace std;cons原创 2017-06-26 14:47:53 · 14788 阅读 · 9 评论 -
搜索之红与黑
1818:红与黑有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入包括多个数据集合。每个数据集合的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。W和H都不超过20。在接下来的H行中,每行包括W个字符。每个字符表示一块瓷砖的颜色,规则如下1)‘.’:黑原创 2017-04-27 19:28:27 · 856 阅读 · 0 评论 -
搜索之城堡问题
1817:城堡问题描述 1 2 3 4 5 6 7 ############################# 1 # | # | # | | # #####---#####---#---#####---# 2 # # | # # # # # #---#####--原创 2017-04-23 21:17:34 · 470 阅读 · 0 评论 -
动态规划 数字三角形
【例1】数字三角形。如下所示为一个数字三角形。请编一个程序计算从顶到底的某处的一条路径,使该路径所经过的数字总和最大。只要求输出总和。 1、 一步可沿左斜线向下或右斜线向下走; 2、 三角形行数小于等于100; 3、 三角形中的数字为0,1,…,99; 测试数据通过键盘逐行输入,如上例数据应以如下所示格式输入:573 88 1 0原创 2017-03-09 21:17:22 · 609 阅读 · 0 评论 -
递归算法之汉诺塔问题
Hanoi汉诺塔问题 有N个圆盘,依半径大小(半径都不同),自下而上套在A柱上,每次只允许移动最上面一个盘子到另外的柱子上去(除A柱外,还有B柱和C柱,开始时这两个柱子上无盘子),但绝不允许发生柱子上出现大盘子在上,小盘子在下的情况,现要求设计将A柱子上N个盘子搬移到C柱去的方法。 【算法分析】 本题是典型的递归程序设计题。 (1)当N=1 时,只有一个盘原创 2017-04-01 21:17:51 · 1143 阅读 · 0 评论 -
各大排序算法自己总结
1.归并排序把十个数进行从小到大排序;每一次都把数组分成两部分,然后进行排序,然后把两部分排好序再合并到一起,一次进行下去直到只剩下一个元素,结束。时间复杂度为O(n*logn);下面代码和注释自己纯收敲的...#include#includeusing namespace std;int a[10]={12,56,7,4,57,34,6,4,3,42};int b[10]原创 2017-03-20 22:51:32 · 364 阅读 · 0 评论 -
分治之归并排序 求排列的逆序数
在Internet上的搜索引擎经常需要对信息进行比较,比如可以通过某个人对一些事物的排名来估计他(或她)对各种不同信息的兴趣,从而实现个性化的服务。对于不同的排名结果可以用逆序来评价它们之间的差异。考虑1,2,…,n的排列i1,i2,…,in,如果其中存在j,k,满足 j j > ik, 那么就称(ij,ik)是这个排列的一个逆序。一个排列含有逆序的个数称为这个排列的逆序数。例如排原创 2017-04-02 17:06:47 · 748 阅读 · 0 评论 -
递归问题之第二类Stirling数放苹果问题
n个有区别的球放到m个相同的盒子中,要求无一空盒,其不同的方案数用S(n,m)表示,称为第二类Stirling数。 下面就让我们根据定义来推导带两个参数的递推关系——第二类Stirling数。 解:设有n个不同的球,分别用b1,b2,……bn表示。从中取出一个球bn,bn的放法有以下两种: ①bn独自占一个盒子;那么剩下的球只能放在m-1个盒子中,方案原创 2017-04-02 12:10:52 · 1332 阅读 · 0 评论 -
c++全排列函数
next_permutation,重新排列范围内的元素[第一,最后一个)返回按照字典序排列的下一个值较大的组合。返回值:如果有一个更高的排列,它重新排列元素,并返回true;如果这是不可能的(因为它已经在最大可能的排列),它按升序排列重新元素,并返回false。具体代码:#include#include#includeusing namespace std;int main()原创 2017-03-26 22:25:11 · 3999 阅读 · 4 评论 -
求最长上升子序列用动态规划
比如输入71 7 3 5 9 4 8输出4他的最长上升子序列为:1 3 5 8采用动态规划一般步骤先找出子问题对子问题分别求解定义一个动态数组存放子问题的解#include#include#include#include using namespace std;int a[1010],maxlen[1010];int main(){原创 2017-04-04 21:02:08 · 355 阅读 · 0 评论 -
求最长公共子序列(动态规划)
比如输入abcfbc abfcabprogramming contestadfgs jyt输出420思路:采用动态规划,一般是先确定动态的状态数组,然后找边界的条件,一般边界都是可以求出来的,然后再找不是边界的和边界之间的关系#include#include#include#include using namespace std;int m原创 2017-04-04 22:21:14 · 434 阅读 · 0 评论 -
(动态规划)求有多少种不同的凑法
一个包可以装mg的东西,有n个物品,体积分别是a1,a2....an,要求选择的物品体积正好是m并且每个物品只能选择一次,一共有多少种不同的凑法?思路:如果m是0,则一个物品都不用选,return 1;如果所有的物品都选上了,还不够m就return 0;否则 如果不选第n个物品则选n-1个物品组成m加上选了第n个物品,那么就只需要选n0-1个组成m-a[n];递归程序原创 2017-04-04 23:32:25 · 755 阅读 · 0 评论 -
八大排序算法之快速排序
排序在各种场合经常被用到。快速排序是十分常用的高效率的算法。其思想是:先选一个“标尺”,用它把整个队列过一遍筛子,以保证:其左边的元素都不大于它,其右边的元素都不小于它。这样,排序问题就被分割为两个子区间。再分别对子区间排序就可以了。#include void swap(int a[], int i, int j){ int t = a[i]; a[i]原创 2017-04-04 17:05:27 · 396 阅读 · 0 评论 -
搜索之八皇后问题
1700:八皇后问题查看提交统计提问总时间限制: 10000ms 内存限制: 65536kB描述在国际象棋棋盘上放置八个皇后,要求每两个皇后之间不能直接吃掉对方。输入无输入。输出按给定顺序和格式输出所有八皇后问题的解(见Sample Output)。样例输入样例输出No. 11 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0原创 2017-04-20 20:21:42 · 1379 阅读 · 0 评论 -
搜索 noip1792 迷宫
1792:迷宫一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行。同时当Extense处在某个格点时,他只能移动到东南西北(或者说上下左右)四个方向之一的相邻格点上,Extense想要从点A走到点B,问在不走出迷宫的情况下能不能办到。如果起点或者终原创 2017-04-23 10:34:54 · 2133 阅读 · 0 评论 -
经典递归算法
1.有52张牌,使它们全部正面朝上,从第2张开始,凡是2的倍数位置上的牌翻成正面朝下;接着从第3张牌开始,凡是3的倍数位置上的牌,正面朝上的翻成正面朝下,正面朝下的翻成正面朝上;接着第三轮从第4张牌开始,凡是4的倍数位置上的牌按上面相同规则翻转,以此类推,直到第1张要翻的牌是第52张为止。统计最后有几张牌正面朝上,以及它们的位置号思路:每翻一次记一次数,最后奇数次的牌是朝下的,偶数朝上#inc原创 2017-03-02 20:36:29 · 2398 阅读 · 1 评论