1. 排序
import os
import sysn=int(input())
data=list(map(int,input().split(" ")))
data.sort()
for d in data:print(d,end=" ")
print()
for d in data[::-1]:print(d,end=" ")
2. 走迷宮BFS
import os
import sys
from collections import dequen,m=map(int,input().split())
maze=[]
for _ in range(n):row=list(map(int,input().strip().split()))maze.append(row)
x1,y1,x2,y2=map(int,input().split())
x1 -= 1
y1 -= 1
x2 -= 1
y2 -= 1def bfs_maze(n,m,maze,x1,y1,x2,y2):directions=[(-1,0),(1,0),(0,-1),(0,1)]queue=deque()queue.append((x1,y1,0))visited=[[False for _ in range(m)] for _ in range(n)]visited[x1][y1]=Truewhile queue:x,y,step=queue.popleft()if x==x2 and y==y2:return stepfor dx,dy in directions:nx,ny=x+dx,y+dyif nx<0 or nx>=n or ny<0 or ny>=m:continueif maze[nx][ny]!=1 or visited[nx][ny]==True:continuevisited[nx][ny]=Truequeue.append((nx,ny,step+1))return -1print(bfs_maze(n,m,maze,x1,y1,x2,y2))
優化后的代碼
from collections import deque# 讀取迷宮的行數和列數
n, m = map(int, input().split())
# 直接讀取迷宮矩陣
maze = [list(map(int, input().split())) for _ in range(n)]
# 讀取起點和終點坐標并調整為 0 索引
x1, y1, x2, y2 = [i - 1 for i in map(int, input().split())]def bfs_maze(n, m, maze, x1, y1, x2, y2):# 定義四個移動方向directions = [(-1, 0), (1, 0), (0, -1), (0, 1)]# 初始化隊列queue = deque([(x1, y1, 0)])# 初始化訪問標記數組visited = [[False] * m for _ in range(n)]visited[x1][y1] = Truewhile queue:x, y, step = queue.popleft()# 若到達終點,返回步數if (x, y) == (x2, y2):return step# 遍歷四個方向for dx, dy in directions:nx, ny = x + dx, y + dy# 檢查新位置是否合法且未訪問if 0 <= nx < n and 0 <= ny < m and maze[nx][ny] == 1 and not visited[nx][ny]:visited[nx][ny] = Truequeue.append((nx, ny, step + 1))# 未找到路徑,返回 -1return -1# 調用函數并輸出結果
print(bfs_maze(n, m, maze, x1, y1, x2, y2))
3. 01背包問題
import os
import sys# 從用戶輸入獲取物品數量和背包容量
num_items, max_capacity = map(int, input().split())
# 存儲每個物品的重量和價值
weights = []
values = []
# 循環獲取每個物品的重量和價值
for _ in range(num_items):weight, value = map(int, input().split())weights.append(weight)values.append(value)# 創建一個二維數組 dp 用于動態規劃,dp[i][w] 表示前 i 個物品在容量為 w 的背包中的最大價值
dp = [[0 for _ in range(max_capacity + 1)] for _ in range(num_items + 1)]
# 記錄每個狀態下選擇的物品
choices = [[False for _