
算法
江南蜡笔小新
这个作者很懒,什么都没留下…
展开
-
三行代码:使用一个数组(list)对另一个数组(list)进行排序
Python自带的库中没有直接提供使用一个数组对另一个数组进行排序的方案,但有很直接的解决方案:example:arr1=[5,3,1,4,2]arr2=['e','c','a','d','b']sorted(zip(arr1,arr2))排序后:[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e')]这个例子中就是使用arr1对arr2进行排序,简单来说就是利用了zip打包在一起,然后arr1中的元素作为key进行排序。...原创 2022-05-19 16:11:51 · 527 阅读 · 0 评论 -
[牛客笔记] NC38 螺旋矩阵金牌代码解析 Python
描述给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素。示例1输入:[[1,2,3],[4,5,6],[7,8,9]]返回值:[1,2,3,6,9,8,7,4,5]分析:本题时间空间限制较为宽松,用模拟系统的直觉的方法来做也能AC。但排行第一的代码更为巧妙。是一个 [0,L) 范围内的整数,表示对应位置像素的灰度值。具体来说,一个 8 比特的灰度图像中每个像素的灰度范围是 [0原创 2021-09-01 20:07:01 · 157 阅读 · 0 评论 -
[背包笔记Python版] 01背包问题
以算法图解中的例子为例,为理解方便,建立了path类,这样能够直接输出装了哪些东西.1.基础版算法(开个二维数组)'''guitar: 1 1500computer: 3 2000sound: 4 3000'''from dataclasses import dataclass,fieldfrom copy import deepcopy@dataclassclass goods: name:str=field(default='non') weight:int=0原创 2021-08-31 14:57:17 · 151 阅读 · 0 评论 -
[新更正·考研真题答案]设有大小不等的n个数据组,其数据总量为m,顺序存放在空间区D内,每个数据占一个存储单元,数据组的首地址由数组S给出,试编写将新数据x插入到第i个数据组的末尾且属于第i个数据组的
文章目录一、题目背景二、题目分析及代码部分1.分析2.代码三、实现效果一、题目背景某校考研真题1.设有大小不等的n个数据组,其数据总量为m,顺序存放在空间区D内,每个数据占一个存储单元,数据组的首地址由数组S给出,试编写将新数据x插入到第i个数据组的末尾且属于第i个数据组的算法,插入后,空间区D和数组S的相互关系仍保持正确。二、题目分析及代码部分1.分析如果我没有理解错题意的话,这道题还是比较简单的。主要就是维护 一个地址数组(S) + 一个类顺序表(D)。D这种类似于顺序表的东西,在考研原创 2020-06-02 16:23:50 · 2456 阅读 · 3 评论 -
天命数 描述 给定两个数字n与m(n,m均不为0,均在100,000以内), 天命数规则如下:给出一个特殊的数字k,1<=k<=3,当k=1的时候,天命数就是n,m中较大的数字整除较小的数字所得到的
一、题目论坛里看到的天命数描述给定两个数字n与m(n,m均不为0,均在100,000以内), 天命数规则如下:给出一个特殊的数字k,1<=k<=3,当k=1的时候,天命数就是n,m中较大的数字整除较小的数字所得到的结果。k=2的时候,天命数是n与m两数之和。k=3的时候,天命数是k=1以及k=2时所获得两个天命数的乘积再整除n与m之中的较大数,最后这个数字除n与m之中的较小数所得的余数求出,即天命数。如果天命数是0,输出:“cangtianyisi,huangtiandangli”。原创 2020-07-28 23:11:49 · 1631 阅读 · 0 评论 -
[基础题库] 追赶问题 满分代码
一、题目背景同样是坛友的题:追赶问题描述已知小张和小明之间的距离为x,小张骑车的速度为v1,小明步行的速度为v2,(v1>v2)。给定的时间为t,若小明会被追上,请问经过了多少时间。(若恰好在t时刻被追上,则不算被追上)输入一行四个正整数,分别为小张和小明相距的距离x,小张的速度v1,小明的速度v2,时间t输出若被追上,则输出Yes和经过的时间(保留两位小数)。 若没追上,则输出No。输入样例 110 6 1 3输出样例 1Yes 2.00二、代码#include <原创 2020-07-28 22:45:24 · 669 阅读 · 1 评论 -
[基础题库] 计算比例 满分代码
一、题目背景计算比例描述众所周知,高中学校竞赛班的男女比例十分不均衡,信息班更是其中之最。与之相反的是可爱的生物班,女生数目竟超过了男生!。为了调节男女比例,出现了信息技术化学生物班。名单出来后,得知了各班信息的信息班男生们迫切地想知道组班后性别比例(男比女)下降了多少,请你编个程序;输入第一行输入信息班妹子人数a及总人数na; 第二行输入生物班性别比例b及总人数nb; 第三行输入化学班男生人数c及总人数原创 2020-07-28 00:37:37 · 513 阅读 · 0 评论 -
[考研真题解] 下面给出一个排序算法,其中 n 是数据类型为 Type 的数组 A[ ]中元素总数。void unknown (Type a[ ], int n) 阅读此算法,说明它的功能;对于下面
下面给出一个排序算法,其中 n 是数据类型为 Type 的数组 A[ ]中元素总数。void unknown (Type a[ ], int n) {int d = 1, j;while ( d < n /3 ) d = 3*d+1;while ( d > 0 ) {for ( int i = d; i < n; i++ ) {Type temp = a[i];j = i;while ( j >= d && a[j-d] > temp ) {原创 2020-06-19 15:55:47 · 864 阅读 · 1 评论 -
[算法题答案]有n个长短不一的英文单词(均为小写),它们中最大长度是m,请设计高效的排序算法对其排序
一、背景有n个长短不一的英文单词(均为小写),它们中最大长度是m,请设计高效的排序算法对其排序题目是我编的。其实是记得群里有人问过“有n个长短不一的英文单词(均为小写),它们中最大长度是m…”,但是题目不完整,我也没有在百度上检索到该题题目,然后自己编了一下。如果有朋友有原题目,欢迎在平均区留言。二、题目分析与代码英文单词排序,我想到的主要是两种方法:桶排序 (Bucket sort)和通过Ascii码进行其他排序。但是题目中的n和m不确定,26个字母的关键字取值范围很大,采用传统桶排序可能不原创 2020-06-05 18:12:59 · 942 阅读 · 0 评论