while left < right and nums[right] <= pivot:# 将小于中心点的元素放右边
right -= 1
nums[left] = nums[right]
nums[left] = pivot
quick_sort(nums,start,left-1,flag)
quick_sort(nums,left+1,end,flag)
n,m = map(int,input().split())
nums = [i for i in range(1,n+1)]
for i in range(m):
p,q = map(int,input().split())
if p: # 当p=1时,将q~n的所有元素升序排序,因为列表索引是从0开始的,所以都要减1
quick_sort(nums,q-1,n-1,p)
else: # 将1~q的所有元素降序排序
quick_sort(nums,0,q-1,p)
for i in nums:
print(i,end=" ")
0分,很难受
======================================================================
试题D:路径
最小公倍数LCM(least common multiple)的辗转相除法。10266837
def lcm(a,b):
if a > b:
a,b = b,a
mul = a * b
不断用大的数除以小的数取余数部分直到最后能够整除为止。
while a > 0:
a,b = b % a, a
return mul// b
target = 2021
dp= [[float(“inf”)] * (target+1) for i in range(target+1)] # 创建列表的两种写法
初始化状态
for i in range(1,23): # 1能到的最远距离是22,因为22 - 1不大于21,所以这里右区间是23
dp[1][i] = i # 1 与 n 的最小公倍数必定是 n
for i in range(2,target+1): # 填表
从第i个数开始只填绝对值小于21的部分,i前面的数无效不用考虑
for j in range(i,i+22):
当超出目标值2021时终止循环
if j > target:
break
当j等于i时,寻找节点1到节点i的最短路径总和
if j == i:
寻找前面21范围以内的数
for k in range(1,22):
if i - k > 0:
取最小值
dp[i][j] = min(dp[i][j],dp[i-k][j])
else:
break
一般情况下通过最小公倍数得出i到j的路径
else:
dp[i][j] = lcm(i,j)
因为当i等于j时存储就是的从节点1到节点i的最短路径总和,因此当target等于2021时
打印的应该就是从节点1到节点2021的最短路径总和才对,结果不是…
priget(dp[target][target])
【正确方案】
在第五十行代码中应添加上一节点到此节点的最短路径值,那么此时dp[i][j] 表示 从1节点到节点i的最短路径加上节点i到节点j的路径。
dp[i][j] = lcm(i,j) + dp[i][i]
=================================================================
====================================================================
010000
000100
001001
110000
以及所要求的迷宫
01010101001011001001010110010110100100001000101010
00001000100000101010010000100000001001100110100101
01111011010010001000001101001011100011000000010000
01000000001010100011010000101000001010101011001011
00011111000000101000010010100010100000101100000000
11001000110101000010101100011010011010101011110111
00011011010101001001001010000001000101001110000000
10100000101000100110101010111110011000010000111010
00111000001010100001100010000001000101001100001001
11000110100001110010001001010101010101010001101000
00010000100100000101001010101110100010101010000101
11100100101001001000010000010101010100100100010100
00000010000000101011001111010001100000101010100011
10101010011100001000011000010110011110110100001000
10101010100001101010100101000010100000111011101001
10000000101100010000101100101101001011100000000100
10101001000000010100100001000100000100011110101001
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
最后
不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~
给大家准备的学习资料包括但不限于:
Python 环境、pycharm编辑器/永久激活/翻译插件
python 零基础视频教程
Python 界面开发实战教程
Python 爬虫实战教程
Python 数据分析实战教程
python 游戏开发实战教程
Python 电子书100本
Python 学习路线规划
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
74929476f9c3b30f7ff58dff0.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA==,size_16,color_FFFFFF,t_70)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-2YoBybfq-1712775612820)]