Python解应用题
python刷题小白,因为华为OD和字节笔试备受打击,故立贴记录学习过程
简单.is.good
1、Python小菜比,必须战胜各类python问题;
2、自学、将此处当作笔记本,记录并学习一些自己不会的知识;
3、所做的一切,都是为了更好的自己;
展开
-
Python解题
python语言解题原创 2024-08-16 01:22:20 · 96 阅读 · 0 评论 -
[leetcode]516_最长回文子序列
leetcode 的 Python 代码——处理输入输出;仅记录便于以后自查自学使用原创 2024-09-29 07:06:28 · 42 阅读 · 0 评论 -
[leetcode]53_最大子数组(序列)和
leetcode 的 Python 代码——处理输入输出;仅记录便于以后自查自学使用原创 2024-09-28 19:46:52 · 119 阅读 · 0 评论 -
[leetcode]5_最长回文子串
leetcode 的 Python 代码——处理输入输出;仅记录便于以后自查自学使用原创 2024-09-27 10:42:49 · 334 阅读 · 0 评论 -
[leetcode]647_回文子串
leetcode 的 Python 代码——处理输入输出;仅记录便于以后自查自学使用原创 2024-09-27 10:24:38 · 308 阅读 · 0 评论 -
[leetcode]131_分割回文串
leetcode 的 Python 代码——处理输入输出;仅记录便于以后自查自学使用原创 2024-09-27 10:22:34 · 231 阅读 · 0 评论 -
[leetcode]40_组合总和II_给定数组且输出无重复
leetcode 的 Python 代码——处理输入输出;仅记录便于以后自查自学使用原创 2024-09-26 13:46:52 · 187 阅读 · 0 评论 -
[leetcode]39_组合总和_给定数组且输出可重复
leetcode 的 Python 代码——处理输入输出;仅记录便于以后自查自学使用原创 2024-09-26 08:03:16 · 466 阅读 · 0 评论 -
[leetcode]216_组合总和III_给定数字范围且输出无重复
leetcode 的 Python 代码——处理输入输出;仅记录便于以后自查自学使用原创 2024-09-25 10:26:27 · 382 阅读 · 0 评论 -
[leetcode]77_组合_给定数字范围且输出无重复
leetcode 的 Python 代码——处理输入输出;仅记录便于以后自查自学使用原创 2024-09-25 09:51:34 · 224 阅读 · 0 评论 -
[leetcode]113_路径总和II_输出所有路径
leetcode 的 Python 代码——处理输入输出;仅记录便于以后自查自学使用原创 2024-09-24 08:39:28 · 405 阅读 · 0 评论 -
[leetcode]112_路径总和_判断是否存在
leetcode 的 Python 代码——处理输入输出;仅记录便于以后自查自学使用原创 2024-09-24 08:35:51 · 308 阅读 · 0 评论 -
[leetcode]70_单词搜索
leetcode 的 Python 代码——处理输入输出;仅记录便于以后自查自学使用原创 2024-09-23 11:18:42 · 285 阅读 · 0 评论 -
[leetcode]64_最小路径和
leetcode 的 Python 代码——处理输入输出;仅记录便于以后自查自学使用原创 2024-09-23 08:56:32 · 366 阅读 · 0 评论 -
[leetcode]63_不同路径II_有障碍版本
leetcode 的 Python 代码——处理输入输出;仅记录便于以后自查自学使用原创 2024-09-23 08:36:00 · 393 阅读 · 0 评论 -
[leetcode]62_不同路径_无障碍版本
leetcode 的 Python 代码——处理输入输出;仅记录便于以后自查自学使用原创 2024-09-22 08:41:18 · 396 阅读 · 0 评论 -
【华为OD】2024D卷——生成哈夫曼树
这是通过构建一种特殊的二叉树来实现的,其中每个字符都位于树的一个叶节点上,且该叶节点到根节点的路径上的边所代表的字符(在哈夫曼编码中通常使用0和1表示)共同构成了该字符的编码。·新节点作为这两个子节点的父节点,而原来的两个节点则成为新节点的左右子节点(通常约定左子节点频率小于等于右子节点)。2、不断从堆中取出两个最小的节点作为左右子树,构造一个新的父节点,其权值为两个节点权值之和,并将新节点插入堆中。·然后,算法反复地选择两个频率最小的节点,将它们合并为一个新的节点,新节点的频率是两个子节点频率之和。原创 2024-09-12 17:17:36 · 1430 阅读 · 0 评论 -
【华为OD】2024D卷——剩余银饰的重量
有N块二手市场收集的银饰,每块银饰的重量都是正整数,收集到的银饰会被熔化用于打造新的饰品。3、最小堆的顶部(即根节点)将是原列表中最大的负数,即原列表中最小的元素的相反数。假设银饰的重量分别为x、y和z,且x<=y<=z。=z,会剩余重量为z-y与y-x差值的银块无法被熔掉。1、每轮判断先heappop()三次,取出x、y、z值,再计算剩余重量。=y且y==z,会剩余重量为y-x的银块无法被熔掉;=z,会剩余重量为z-y的银块无法被熔掉;如果x==y==z,那么三块银饰都会被完全熔掉;原创 2024-09-03 22:07:40 · 693 阅读 · 0 评论 -
【华为OD】2024D卷——停车场车辆统计
使用贪心策略:遇到车位 = 1时,尝试停放卡车;车辆大小不一,小车占一个车位(长度1),货车占两个车位(长度2),卡车占三个车位(长度3),整型字符串Q数组cars[],其中1表示有车,0表示没车,数组长度小于1000。结语:越简单的题目解法应该越多,请路过大神留下新的思路供本小白学习一下,打开思路。特定大小的停车场,数组cars[]表示,其中1表示有车,0表示没车。1个货车占第1、2个车位第3、4个车位空。1个卡车占第5、6、7个车位第8个车位空。1个小车占第1个车位第二个车位空。换一种更容易懂的写法。原创 2024-08-31 15:12:04 · 600 阅读 · 0 评论 -
【华为OD】2024D卷——查找众数与中位数
中位数是指把一组数据从小到大排列,最中间的那个数,如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的个数为偶数,那就把中间的两个数之和除以2,所得的结果就是中位数。结语:越简单的题目解法应该越多,请路过大神留下新的思路供本小白学习一下,打开思路。数组大小取值范围0<N<1000,数组中每个元素取值范围0<E<1000。查找整型数组中元素的众数并组成一个新的数组,求新数组的中位数。2、找出众数(频率最大数),组成新数组。输出众数组成的新数组的中位数。知识点:列表、hash表。原创 2024-08-31 14:43:29 · 550 阅读 · 0 评论 -
开发商购买土地
二维矩阵前缀和preSum[i][j] = preSum[i][j - 1] + preSum[i - 1][j] +matrix[i][j] - preSum[i - 1][i - 1]preSum[i][j] 表示以 (0, 0) 为左上角,(i, j) 为右下角的矩阵和。下侧子矩阵和preSum[n][m] - preSum[i][m]下侧子矩阵和preSum[n][m] - preSum[n][i]矩阵只能划分一次,可以横向划分、纵向划分,需要计算两个子矩阵和,再计算子矩阵差值,并找到最小差值。原创 2024-08-30 15:23:51 · 247 阅读 · 0 评论 -
汽水瓶换饮料
输入文件包含多组测试数据,每个数据占一行,仅包含一个正整数 n ,表示小张手上的空汽水瓶数。某商店规定:三个空汽水瓶可以换一瓶汽水,允许向老板借空汽水瓶(只能借一个,必须要归还)。如果新空瓶 N = = 2,可以借用一瓶,再兑换饮料num += 1。可以发现,其实两个瓶子即可换一瓶饮料,即返回结果N // 2。对于每组测试数据,输出一行,表示最多可以喝的汽水瓶数。空瓶10 , 饮料 5(借用1)空瓶2 , 饮料 1(借用1)空瓶4 , 饮料 2(借用1)空瓶6 , 饮料 3(借用1)空瓶3 , 饮料 1。原创 2024-08-30 12:31:56 · 213 阅读 · 0 评论 -
【华为OD】2024D卷——查找接口成功率最优时间段
数组中的数值为0~100的整数,给定一个数值(minAverageLost)表示某个时间段内平均失败率容忍值,即平均失败率小于等于minAverageLost,找出平均值小于等于minAverageLost的最长时间段,输出数组下标对,格式[beginlndex}-{endlndx}(下标从0开始),服务之间交换的接口成功率作为服务调用关键质量特性,某个时间段内的接口失败率使用一个数组表示,数组中每个元素都是单位时间内失败率数值,B、前3个元素的平均值为1,因此数组第一个至第三个数组下标,即0-2。原创 2024-08-27 03:00:20 · 531 阅读 · 0 评论 -
【华为OD】2024D卷——分割均衡字符串
给定一个均衡字符串,请给出可分割成新的均衡子串的最大个数。约定字符串中只包含大写的X和Y两种字符。countX == countY,则可以分割1次;结语:越简单的题目解法应该越多,请路过大神留下新的思路供本小白学习一下,打开思路。字符串的长度[2,10000]。给定的字符串均为均衡串。均衡串定义:字符串只包含两种字符,且两种字符的个数相同。分割后的子串,是原字符串的连续子串。1、遍历字符串,记录X、Y数量。均衡串:XXYYXY。输入: XXYYXY。原创 2024-08-22 21:49:05 · 223 阅读 · 0 评论 -
【华为OD】2024D卷——任务执行时长
计算每一秒的任务处理情况,直到所有任务都处理完;每次处理任务都会增加1秒,当遍历完任务数组后,如果还有剩余任务需要处理,则继续计算所需的额外时间。为了充分发挥GPU算力,需要尽可能多的将任务交给GPU执行,现在有一个任务数组,数组元素表示在这1秒内新增的任务个数且每秒都有新增任务,假设GPU最多一次执行n个任务,一次执行耗时1秒,在保证GPU不空闲情况下,最少需要多长时间执行完成。:如果当前秒内无法完全处理所有新增任务,那么未处理的任务将累积到下一秒一起处理。如果超过,则多出的任务需要延迟到后面处理。原创 2024-08-22 00:28:43 · 313 阅读 · 0 评论 -
【华为OD】2024D卷——整数对最小和
每次从堆中取出最小的元素(即当前和最小的一对), 然后将该对元素对应的 array1 的下一个元素与 array2 当前元素组合并插入堆中(注意题目中两个array输入时是升序排列的)。假设从array1、array2中分别取出一个元素可构成一对元素,现在需要取出k对元素,并对取出的所有元素求和,计算和的最小值。初始时,我们将 array1 的第一个元素和 array2 的每个元素配对, 然后将这些配对的和插入最小堆。取第一个数组第1个元素与第二个数组第0个元素组成1对元素[1,1];原创 2024-08-21 20:03:46 · 348 阅读 · 0 评论 -
【华为OD】2024D卷——开源项目热榜
Wwatch、Wstar、Wfork、 Wissue、Wmr分别表示5个统计维度的权重,#watch、#star、#fork、#issue、#mr分别表示5个统计维度的统计值。其中name为开源项目的名字,由英文字母组成,长度<=50,其余5个整型值分别为该。原创 2024-08-21 09:59:11 · 343 阅读 · 0 评论 -
【华为OD】2024D卷——寻找身高相似的小朋友
小明今年升学到小学一年级,来到新班级后发现其他小朋友们身高参差不齐,然后就想基于各小朋友和自己的身高差对他们进行排序,请帮他实现排序。第二行为N个正整数H1—HN,分别是其他小朋友的身高,取值范围0<Hi<200(1<=i<=N),且N个正整数各不相同。·待插入排序身高差 = 新数组【插入标志位置】身高差,待排序身高 > 新数组【插入标志位】身高。第一行为正整数H和N,0<H<200,为小明的身高,0<N<50,为新班级其他小朋友个数。1、新建一个新数组存储排序后的身高,插入位置标志位置0。原创 2024-08-20 23:23:55 · 340 阅读 · 0 评论 -
【华为OD】2024D卷——寻找最富裕家庭
在一棵树中,每个节点代表一个家庭成员,节点的数字表示其个人的财富值,一个节点及其直接相连的子节点被定义为一个小家庭。第二行为N个空格分隔的数,表示编号1-N的成员的财富值。接下来N-1行,每行两个空格分隔的整数(N1,N2),表示N1是N2的父节点Q。结语:越简单的题目解法应该越多,请路过大神留下新的思路供本小白学习一下,打开思路。第一行为一个数N,表示成员总数,成员编号1-N,1<=N<=1000。:对于单个节点,计算此节点财富+所有子节点财富之和。成员1,2,3,4组成的小家庭财富值为1100。原创 2024-08-20 22:12:23 · 359 阅读 · 0 评论 -
【华为OD】2024D卷——万能字符拼写
3、word中字母存在无法在chars中找到的情况时,统计个数tmp_count,若tmp_count小于chars中'?可以理解为,假如chars = 'aaa',这里的chars[0]的a和chars[1]、chars[2]的a均可使用一次。·遍历words中的每个word,确认每个word中的字符均可在chars_set()中找到。1、可以使用hash表的方法,来存储chars中每个字母的个数,然后与word中字母的个数进行比较判断。说明:'tre'中,'r'、'e'可以被两个'?原创 2024-08-20 00:14:42 · 425 阅读 · 0 评论 -
【华为OD】2024D卷——连续自然数之和表达整数
2.每个表达式中按自然数递增的顺序输出,具体的格式参见样例。在每个测试数据结束时,输出一行“ResultX”,其中X是最终的表达式个数。给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式。对于每一个起始数字 start,逐个累加下一个自然数,直到累加和等于给定的目标整数 T,或者累加和大于 T。当累加和等于 T 时,将该序列记录为一个有效表达式,并将其格式化输出。第2个表达式有2个自然数,第2次序输出,第1个表达式只有1个自然数,最先输出,该整数的所有表达式和表达式的个数。原创 2024-08-19 22:25:03 · 405 阅读 · 0 评论 -
【华为OD】2024D卷——最大坐标值
给定一组指令和一个幸运数,每个指令都是一个整数,小明按照指定的要求前进或者后退指定的步数。第三行输入n个指令,每个指令值的取值范围为:—100<=指令值<=100。幸运数为一个整数,如果某个指令正好和幸运数相等,则小明行进步数加1。第一行输入1个数字,代表指令的总个数n(1<=n<=100)2、判断指令:指令符合要求,且=幸运数,则指令+1。指令为3,正好和幸运数相等,前进3+1=4步;指令为0,表示原地不动,既不前进,也不后退。幸运数为3,指令为[2,3,0,-5]指令为2,表示前进2步;原创 2024-08-19 20:14:45 · 230 阅读 · 0 评论 -
【华为OD】2024D卷——素数之积
RSA加密算法在网络安全世界中无处不在,它利用了极大整数因数分解的困难度,数据越大,安全系数越高,给定一个32位正整数,请对其进行因数分解,找出是哪两个素数的乘积。1、判断素数:编写一个函数来判断一个数是否为素数。3、输出结果:如果找到满足条件的素数对,则按升序输出这两个素数;因数分解Q后,找到两个素数3和5,使得3*5=15,按从小到大排列后,输出3 5。如果成功找到,以单个空格分割,从小到大输出两个素数,分解失败,请输出-1 -1。通过因数分解,找不到任何素数,使得他们的乘积为27,输出-1 -1。原创 2024-08-19 20:02:18 · 404 阅读 · 0 评论 -
【华为OD】2024D卷——简易内存池
遍历内存池寻找连续的空闲区域,如果找到满足大小的空闲区域,分配内存,并返回首地址;如果分配成功,返回分配到的内存首地址;根据提供的首地址,释放对应的内存块;表示释放掉之前分配的内存,释放成功无需输出,如果释放不存在的首地址则输出error。5.释放操作只是针对首地址所对应的单个内存块进行操作,不会影响其它内存块。3内存释放后可被再次分配,已释放的内存在空闲时不能被二次释放。2.内存池地址分配必须是连续内存,并优先从低地址分配。4不会释放已申请的内存块的中间地址,RELEASE=释放的内存首地址,原创 2024-08-19 19:53:32 · 276 阅读 · 0 评论 -
【华为OD】2024D卷——内存冷热标记
第二行为访存序列,空格间隔的N个内存页框号,页框号范围0—65535,同一页框号可能重复出现,出现的次数即为对应页框号的频次。一种典型的方案是基于内存页的访问频次进行标记,如果统计窗口内访问次数大于等于设定阈值,则认为是热内存页,否则是冷内存页。第一行输出标记为热内存的内存页个数,如果没有被标记为热内存的,则输出0。:将这些热内存页按照频次降序排列,如果频次相同则按页框号从小到大排序。内存页1和内存页2均被访问了5次,达到了阈值5,因此热内存页有2个。内存页1和内存页2的访问频次相等,页框号小的排前面。原创 2024-08-19 19:29:27 · 244 阅读 · 0 评论 -
【华为OD】2024D卷——围棋的气
比如下图中,黑棋一共4口气,而不是5口气,因为黑1和黑2中间红色三角标出的气是两个黑棋共有的,对于黑棋整体来说只能算一个气。1、在棋盘的边缘上的棋子最多有3口气(黑1),在棋盘角点的棋子最多有2口气(黑2),其它情况最多有4口气(白1)2、所有同色棋子的气之和叫作该色棋子的气,需要注意的是,同色棋子重合的气点,对于该颜色棋子来说,只能计算一次气,3、本题目只计算气,对于眼也按气计算,如果您不清楚“眼”的概念,可忽略,按照前面描述的规则计算即可。2、坐标的原点在棋盘左上角点,第一个值是行号,范围从0到18;原创 2024-08-19 18:20:11 · 402 阅读 · 0 评论 -
【华为OD】2024D卷——精准核酸检测
题目描述:为了达到新冠疫情精准防控的需要,为了避免全员核酸检测带来的浪费,需要精准圈定可能被感染的人群。现在根据传染病流调以及大数据分析,得到了每个人之间在时间、空间上是否存在轨迹的交叉。现在给定一组确诊人员编号(X1,X2,X3....Xn),在所有人当中,找出哪些人需要进行核酸检测,输出需要进行核酸检测的人数。(注意:确诊病例自身不需要再做核酸检测)需要进行核酸检测的人,是病毒传播链条上的所有人员,即有可能通过确诊病例所能传播到的所有人。原创 2024-08-18 00:44:01 · 737 阅读 · 1 评论 -
【华为OD】2024D卷——求最多可以派出多少支团队
用数组代表每个人的能力,一个比赛活动要求参赛团队的最低能力值为N,每个团队可以由1人或2人组成,且1个人只能参加1个团队,请计算出最多可以派出多少支符合要求的团队?双指针法,除去单人组队后,在剩余人数中确认当前最弱者与最强者的能力和能否组成一个符合要求的团队,可以双指针移动;第二行数组代表每个人的能力,每个元素的取值范围[1,500000],数组的大小范围[1.500000]第三行数值为团队要求的最低能力值,范围[1,500000]3.5组成一队,1.7组成一队,9自己一个队,故输出3。原创 2024-08-16 22:18:56 · 225 阅读 · 0 评论 -
【华为OD】2024D卷——来自异国的客人
该客人有个幸运数字n(n<m),每次购物时,其总是喜欢计算本次支付的花费(折算为异国的价格后)中存在多少幸运数字。10用4进制表示时为22,同时,异国客人的幸运数字是2,故而此处输出为2,表示有2个幸运数字。此时客人的幸运数字为4,但是由于该国最大为4进制,故而在该国的进制下不可能出现幸运数字,故而返回0。结语:越简单的题目解法应该越多,请路过大神留下新的思路供本小白学习一下,打开思路。问:当其购买一个在我国价值k的产品时,其中包含多少幸运数字?k表示该客人购买的物品价值(以十进制计算的价格)原创 2024-08-16 22:18:52 · 240 阅读 · 0 评论 -
【字节面试】随机分配红包
"二倍均值法",即每次随机分配一个红包金额,剩下的金额再继续分配给剩下的人,保证每个人至少能得到 1分钱,且最后一个人拿到剩余的所有金额。结语:越简单的题目解法应该越多,请路过大神留下新的思路供本小白学习一下,打开思路。·再根据最大红包金额*随机数,生成一个随机红包金额。·对于每个人,随机分配的金额在 [0.01,(·最后一个红包金额=总金额-已分配金额。·最后一个人得到剩余的所有额。1.确认固定金额和人数为控制台输入。1.确认固定金额和人数为控制台输入。将固定金额的红包随机分配给n个人。原创 2024-08-16 03:25:10 · 235 阅读 · 0 评论