Python作业答疑_6.22~6.25
一、Python 一班
1. 基数分割列表
1.1 问题描述
给定一无序数列,把数列的第一个数字当成基数,让数列中基数小的数字排在数列前面,比基数大的数字排在数列的后面。
1.2 问题示例
如数列:num=[4,1,8,3,9,2,10,7]。基数为 4,排序后 num=[1,3,2,4,8,9,10,7]。
1.3 问题提示
可以使用左右指针方案。
1.4 编码实现
num = [4, 1, 8, 3, 9, 2, 10, 7]
# 基数
base_num = num[0]
# 左指针
left = 0
# 右指针
right = len(num) - 1
while left < right:while num[right] > base_num and right > left:right -= 1while num[left] < base_num and right > left:left += 1# 交换num[left], num[right] = num[right], num[left]
print(num)
2. 回旋镖的数量
2.1 问题描述
在平面中给定n个点,每一对点都是不同的,回旋镖是点的元组(i,j,k),其中,点i和点j之间的距离与点i和点k之间的距离相同(i,j,k的顺序不同,为不同元组)。找到回旋镖的数量。n最多为500,并且点的坐标都在[-10 000,10 000]范围内。
2.2 问题示例
输入[[0,0],[1,0],[2,0]],输出2,两个回旋镖是[[1,0],[0,0],[2,0]]和[[1,0],[2,0],[0,0]]。
2.3 问题提示
关键是求解出两个点之间的距离。
2.4 编码实现
def getDistance(a,b):dx = a[0] - b[0]dy = a[1] - b[1]return dx * dx + dy * dydef number0fBoomerangs(points):# 参数points:整数列表#返回整数if points == None:return 0ans = 0for i in range(len(points)):disCount = {}for j in range(len(points)):if i == j:continuedistance = getDistance(points[i],points[j])count = disCount.get(distance,0)disCount[distance] = count + 1for distance in disCount:ans += disCount[distance] * (disCount[distance] - 1)return ansn = [[0,0],[1,0],[2, 0]]
print("输入:",n)
print("输出:",number0fBoomerangs(n))
3. 合并排序数组
3.1 问题描述
合并两个排序的整数数组A和B,变成一个新的排序数组。
3.2 问题示例
输入[1,2,3]及元素个数3,输入[4,5]及元素个数2,输出[1,2,3,4,5],经过合并新的数组为[1,2,3,4,5]。输入[1,2,5]及元素个数3,输入[3,4]及元素个数2,输出[1,2,3,4,5],经过合并新的数组为[1,2,3,4,5]。
3.3 编码实现
a = [1, 4, 6]
b = [3, 5]
c = []
i = 0
j = 0
while i < len(a) and j < len(b):if a[i] < b[j]:c.append(a[i])i += 1else:c.append(b[j])j += 1
while i < len(a):c.append(a[i])i += 1
while j < len(b):c.append(b[j])j += 1
print(c)
二、Python 二班
1. 构造矩形
1.1 问题描述
给定一个矩形大小,设计其长(L)宽(W),使其满足如下要求:
- 矩形区域大小需要和给定目标相等;
- 宽度
W不大于长度L,即L≥W; - 长和宽的差异尽可能小;
- 返回设计好的长度L和宽度W。
1.2 问题示例
输入为4,输出为[2,2],目标面积为4,所有可能的组合有[1,4],[2,2],[4,1],[2,2]是最优的,L=2,W=2。
1.3 问题提示
给定区域面积不超过10 000 000,而且是正整数,页面宽度和长度必须是正整数。
1.4 编码实现
方案一:两头向中思路,求差值最小的一对长和宽
area = int(input("矩形大小:"))
wi = 1
le = area
c = le-wi
for i in range(1, area + 1):le = area // iif le - i < c and le >= i and le * i == area:wi = ic = le - i
print(int(area / wi), wi)
方案二:中间开始,试探查找 。
import math
area = int(input("矩形大小:"))
w = int(math.sqrt(area))
while area % w != 0:w -= 1
print(area // w, w)
2. 两个排序数组合的第k小元素
2.1 问题描述
给定两个排好序的数组A,B,定义集合sum=a+b,其中a来自数组A,b来自数组B,求sum中第k小的元素。
2.2 问题示例
给出A=[1,7,11],B=[2,4,6],sum=[3,5,7,9,11,13,13,15,17],当k=3,返回7;当k=4,返回9;当k=8,返回15。
2.3 问题提示
最简单的方案,2 个列表中的数字相乘组成新的列表,再排序。
2.4 编码实现
k = int(input("位置"))
A = [1, 7, 11]
B = [2, 4, 6]
s = []
for i in range(len(A)):for j in range(len(B)):s.append(A[i] + B[j])
s.sort()
print(s[k - 1])
三、Python 三班
1. 首字母大写
1.1 问题描述
输入一个英文句子,将每个单词的首字母改成大写
1.2 问题示例
输入s="i want to go home",输出"I Want To Go Home"。输入s="we want to go to school",输出"We Want To Go To School"。
1.3 问题提示
可以使用 split分割字符串,取出首字母后转换成大写(可以使用字符串的 upper()方法把字母转成大写)。
1.4 编码实现
s = "i want to go home"
lst = s.split(" ")
print(lst)
for i in range(len(lst)):lst[i] = lst[i][0].upper()+lst[i][1:]
print(" ".join(lst))
2. 七进制
2.1 问题描述
给定一个整数,返回其七进制的字符串表示。
2.2 问题示例
输入num=100,输出202。输入num=7,输出10。
2.3 问题提示
求解七进制方法:把数字不停除以 7。再把余数重新连接起来。
如求解 100 的 七进制:
-
100 除以 7 ,余数为 2,商为
14. -
14 再除以 7,余数为
0,商为2。 -
2再除了7,余数为2,商为0。从后向前,把余数连接起来:
202。
2.4 编码实现
num=7
res=""
while num>0:res+=str(num % 7)num=num // 7
print(res[::-1])
3. 查找数组中没有出现的所有数字
3.1 问题描述
给定一个整数数组,其中1≤a[i]≤n(n为数组的大小),一些元素出现两次,其他元素出现一次。找到[1,n]中所有未出现在此数组中的元素。
3.2 问题示例
输入[4,3,2,7,8,2,3,1],输出[5,6]。
3.3 问题提示
逐一查找!
3.4 编码实现
num = [4, 3, 2, 7, 8, 2, 3, 1]
for i in range(1,len(num)+1):if i not in num:print(i)
相关文章:
Python作业答疑_6.22~6.25
一、Python 一班 1. 基数分割列表 1.1 问题描述 给定一无序数列,把数列的第一个数字当成基数,让数列中基数小的数字排在数列前面,比基数大的数字排在数列的后面。 1.2 问题示例 如数列:num[4,1,8,3,9,2,10,7]。基数为 4&…...
Uber Go 语言编码规范
uber-go/guide 的中文翻译 English 文档链接 Uber Go 语言编码规范 Uber 是一家美国硅谷的科技公司,也是 Go 语言的早期 adopter。其开源了很多 golang 项目,诸如被 Gopher 圈熟知的 zap、jaeger 等。2018 年年末 Uber 将内部的 Go 风格规范 开源到 G…...
UniRepLKNet:用于音频、视频、点云、时间序列和图像识别的通用感知大内核ConvNet
摘要 https://arxiv.org/abs/2311.15599 大核卷积神经网络(ConvNets)最近受到了广泛的研究关注,但存在两个未解决的关键问题需要进一步研究。(1)现有大核ConvNets的架构在很大程度上遵循传统ConvNets或Transformers的设计原则,而大核ConvNets的架构设计仍未得到充分解决。(2…...
Http协议与Tomcat
HTTP协议 HTTP协议(HyperText Transfer Protocol)即超文本传输协议 ,是TCP/IC网络体系结构应用层的一个客户端-服务端协议,是所有客户端,服务端数据传输的基石(数据传输规则) 特点 ⭐基于TCP协…...
Spring AOP从入门到精通
目录 1. AOP的演化过程 1. 代理模式 2. 动态代理 2.1 JDK动态代理 2.2 Cglib动态代理 3. Spring模式 3.1 ProxyFactory 3.2 ProxyFactoryBean 3.3 AbstractAutoProxyCreator 2. Spring AOP抽象 1. 核心术语 1.1 连接点(JoinPoint) 1.2 切点(Pointcut) 1.3 增强(Ad…...
Tap虚拟网卡
1 概述 Tap设备通常用于虚拟化场景下,其驱动代码位于drivers/net/tun.c,tap与tun复用大部分代码, 注:drivers/net/tap.c并不是tap设备的代码,而是macvtap和ipvtap; 下文中,我们统一称tap&#…...
【数电笔记】53-与非门构成的基本RS触发器
目录 说明: 1. 电路组成 2. 逻辑功能 3. 特性表 4. 特性方程 5. 状态转换图 6. 驱动表 7. 例题 例1 例2 说明: 笔记配套视频来源:B站;本系列笔记并未记录所有章节,只对个人认为重要章节做了笔记;…...
kubernetes(k8s)容器内无法连接同所绑定的Service ClusterIP问题记录
kubernetes(k8s)容器内无法连接同所绑定的Service ClusterIP问题记录 1. k8s环境 k8s使用kubernetes-server-linux-amd64_1.19.10.tar.gz 二进制bin 的方式手动部署 k8s 版本: [rootmaster ~]# kubectl version Client Version: version.Info{Major:"1", Minor:&…...
Hadoop入门学习笔记
视频课程地址:https://www.bilibili.com/video/BV1WY4y197g7 课程资料链接:https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd5ay8 这里写目录标题 一、VMware准备Linux虚拟机1.1. VMware安装Linux虚拟机1.1.1. 修改虚拟机子网IP和网关1.1.2. 安装…...
堆栈,BSS,DATA,TEXT
一、目标文件 首先目标文件的构成,Linux下就是.o 文件 编译器编译源码后生成的文件叫目标文件(Object File)。 目标文件和可执行文件一般采用同一种格式,这种存储格式为 ELF。 目前文件的内容至少有编译后的机器指令代码和数据&a…...
Java八股文面试全套真题【含答案】-JSON篇
什么是JSON? 答案:JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,基于JavaScript的对象字面量表示法,用于在不同语言和平台之间传输数据。JSON的数据结构是怎样的? 答案…...
数据库管理-第119期 记一次迁移和性能优化(202301130)
数据库管理-第119期 记一次迁移和性能优化(202301130) 1 迁移 之前因为DV组件没有迁移成功的那个PDB,后来想着在目标端安装DV组件迁移,结果目标端装不上,而且开了SR也没看出个所以然来。只能换一个方向,尝…...
【云原生-K8s】镜像漏洞安全扫描工具Trivy部署及使用
基础介绍基础描述Trivy特点 部署在线下载百度网盘下载安装 使用扫描nginx镜像扫描结果解析json格式输出 总结 基础介绍 基础描述 Trivy是一个开源的容器镜像漏洞扫描器,可以扫描常见的操作系统和应用程序依赖项的漏洞。它可以与Docker和Kubernetes集成,…...
【Docker】Swarm的ingress网络
Docker Swarm Ingress网络是Docker集群中的一种网络模式,它允许在Swarm集群中运行的服务通过一个公共的入口点进行访问。Ingress网络将外部流量路由到Swarm集群中的适当服务,并提供负载均衡和服务发现功能。 在Docker Swarm中,Ingress网络使…...
gcc安全特性之FORTIFY_SOURCE
GCC 4.0引入了FORTIFY_SOURCE特性,旨在加强程序的安全性,特别是对于字符串和内存操作函数的使用。下面是对FORTIFY_SOURCE机制的深入分析: 1. 功能 FORTIFY_SOURCE旨在检测和防止缓冲区溢出,格式化字符串漏洞以及其他与内存操作…...
【JUC】二十、volatile变量的特点与使用场景
文章目录 1、volatile可见性案例2、线程工作内存与主内存之间的原子操作3、volatile变量不具有原子性案例4、无原子性的原因分析:i5、volatile变量小总结6、重排序7、volatile变量禁重排的案例8、日常使用场景9、总结 volatile变量的特点: 可见性禁重排无…...
软件工程期末复习(2)
学习资料 设计模式与软件体系结构【期末全整理答案】_软件设计模式与体系结构期末考试题_鸽子不二的博客-CSDN博客 软件设计与体系结构(第二版)部分习题_软件设计与体系结构第二版课后答案-CSDN博客 软件体系结构试题库试题和答案 - 豆丁网Docin 软件设计与体系结构复习 - CN…...
[vue3] 使用 vite 创建vue3项目的详细流程
一、vite介绍 Vite(法语意为 “快速的”,发音 /vit/,发音同 “veet”) 是一种新型前端构建工具,能够显著提升前端开发体验(热更新、打包构建速度更快)。 二、使用vite构建项目 【学习指南】学习新技能最…...
#HarmonyOS:软件安装window和mac预览Hello World
Window软件地址 https://developer.harmonyos.com/cn/develop/deveco-studio#download 安装的建议 这个界面这样选,其他界面全部按照默认路径往下走!!! 等待安装… 安装环境错误处理 一般就是本地node配置异常导致ÿ…...
nginx 一键切换停机维护页面 —— 筑梦之路
背景说明 进行停机维护或者系统升级等操作,会影响到用户使用,如果停机维护期间用户未看到停机维护的通知,仍去访问系统,会提示默认不太友好的访问错误界面 ,这时如果在维护的时候直接展示停机公告的具体信息࿰…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
