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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/205201.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

产品成本收集器流程演示

感谢大佬的文章&#xff0c;我只是一个翻译搬运工&#xff0c;原文地址&#xff1a;产品成本收集器 概述 SAP 令人兴奋的部分之一是它在不同操作模块之间的集成程度。使用产品成本收集器来跟踪生产就是一个很好的例子。在本博客中&#xff0c;我计划遵循产品成本收集器流程&a…

JAVA刷题之数组的总结和思路分享

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

C语言第十六集(前)

1.关于那个整形存储入char的 是先取好补码,再截断 例: 2.%u是以十进制的形式打印无符号整数 3.注意(背):存储的char类型变量的补码为10000000的直接解析为-128 4.signed char 类型的变量取值范围是-128~127 5.unsigned char 类型的变量取值范围是0~255 6.有符号类型的变量…

2023.12.6 关于 Spring Boot 事务的基本概念

目录 事务基本概念 前置准备 Spring Boot 事务使用 编程式事务 声明式事务 Transactional 注解参数说明 Transational 对异常的处理 解决方案一 解决方案二 Transactional 的工作原理 面试题 Spring Boot 事务失效的场景有那些&#xff1f; 事务基本概念 事务指一…

如何解决5G基站高能耗问题?

安科瑞 须静燕 截至2023年10月&#xff0c;我国5G基站总数达321.5万个&#xff0c;占全国通信基站总数的28.1%。然而&#xff0c;随着5G基站数量的快速增长&#xff0c;基站的能耗问题也逐渐日益凸显&#xff0c;基站的用电给运营商带来了巨大的电费开支压力&#xff0c;降低5…

vue项目配置多个代理

在本地.env文件配置本地/测试/预发/正式 路径&#xff1a; 在vue.config.js 里面配置&#xff1a; module.exports defineConfig({transpileDependencies: false,lintOnSave: false,outputDir: process.env.VUE_APP_DIST,publicPath: /,css: {loaderOptions: {postcss: {// p…

Motion Plan之轨迹生成代码实现 (1)

Motion Plan之搜索算法笔记Motion Plan之基于采样的路径规划算法笔记Motion Plan之带动力学约束路径搜索 Motion Plan之轨迹生成笔记文章开始前先回顾下上次的带约束的轨迹生成&#xff0c;轨迹生成本质就是曲线拟合。曲线拟合常用的方法有&#xff1a;多项式、贝赛尔曲线、三…

“Notification.recipient“ must be a “User“ instance.

使用django的通知模块报错&#xff1a; Lib\site-packages\notifications\base\models.py class AbstractNotification(models.Model):recipient models.ForeignKey(settings.AUTH_USER_MODEL,on_deletemodels.CASCADE,related_namenotifications,verbose_name_(recipient),b…

第5节:Vue3 JavaScript 表达式

在 Vue3 中&#xff0c;JavaScript 表达式的使用方式与 Vue2 有所不同。 在 Vue3 中&#xff0c;你可以使用 v-bind 指令来绑定 JavaScript 表达式。例如&#xff1a; <template><div>{{ count }}</div> </template><script> import { ref } f…

CPU密集型和IO密集型与CPU内核之间的关系

CPU密集型和IO密集型与CPU内核之间的关系 一、CPU密集型 介绍 CPU密集型&#xff0c;也叫计算密集型&#xff0c;是指需要大量CPU计算资源&#xff0c;例如大量的数学运算、图像处理、加密解密等。这种类型的任务主要依赖于CPU的计算能力&#xff0c;会占用大量的CPU时间片&am…

vcomp140.dll文件丢失解决方法分享:三种亲测有效方案

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“vcomp140.dll丢失”。这个错误提示通常出现在运行某些程序或游戏时&#xff0c;给使用者带来了很大的困扰。那么&#xff0c;vcomp140.dll丢失怎样修复呢&#xff1f;本文将详细介绍解决这…

Spark低版本适配Celeborn

Spark-3.5版本以下使用Celeborn时&#xff0c;无法使用动态资源&#xff0c;对于低版本的Spark&#xff0c;Celeborn提供了patch。各版本patch如下 https://github.com/apache/incubator-celeborn/tree/main/assets/spark-patch 下载patch&#xff0c;这里下载spark-3版本&am…

网工内推 | 国企网工、运维,厂商认证优先,13薪,带薪年假

01 中百集团 招聘岗位&#xff1a;运维工程师 职责描述&#xff1a; 1、对集团内使用云计算架构&#xff08;Kubernetes&#xff09;的系统进行规划、运维及管理相关工作。 2、对集团数据中心系统的大数据基础架构&#xff08;Cloudera Distribution Hadoop&#xff09;的规划…

打补丁,生成.diff文件

作者&#xff1a;爱塔居 文章目录 目录 前言 步骤 一、在根目录上&#xff0c;输入添加指令 二、输入修改内容指令 三、生成补丁 前言 自己的理解&#xff0c;仅供参考&#xff0c;欢迎指正。 补丁的话&#xff0c;在我看来就是方便评审&#xff0c;更方便看修改代码吧。 步骤…

Python-关系运算符详解

关系运算符&#xff1a;比较两个操作数的大小或者相等关系 < > ! 1、关系运算符的关系表达式返回值是布尔类型bool 成立就是真&#xff0c;即1&#xff1b;不成立就是假&#xff0c;即0 2、关系运算符还可以比较字符 字符根据字典序比较&#xff0c;先看首字母在…

Nginx(配置SLL证书)

随着越来越多的网站接入HTTPS&#xff0c;因此Nginx中仅配置HTTP还不够&#xff0c;往往还需要监听443端口的请求&#xff0c;HTTPS为了确保通信安全&#xff0c;所以服务端需配置对应的数字证书&#xff0c;当项目使用Nginx作为网关时&#xff0c;那么证书在Nginx中也需要配置…

智能优化算法应用:基于人工大猩猩部队算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于人工大猩猩部队算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于人工大猩猩部队算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.人工大猩猩部队算法4.实验参数设…

Unity Meta Quest 一体机开发(九):【手势追踪】通过录制抓取手势实现自定义抓取姿势

文章目录 &#x1f4d5;教程说明&#x1f4d5;录制前的准备&#x1f4d5;第一种录制方法&#xff08;Hand Grab Pose Tool 场景&#xff09;⭐在运行模式中确认录制⭐保存录制的手势&#xff0c;将物体做成 Prefab⭐在编辑阶段调整抓取手势&#x1f50d;Fingers Freedom&#x…

德国进口高速主轴电机在机器人上的应用及选型方案

随着机器人技术的日新月异&#xff0c;高速主轴电机在机器人领域的应用也日趋广泛。德国进口的SycoTec高速主轴电机&#xff0c;以其高转速、高精度、高刚度的特点&#xff0c;在机器人的切割、铣削、钻孔、去毛刺等加工应用中发挥着关键作用。 一、高速主轴电机的特点 SycoT…

微信机器人接口开发

简要描述&#xff1a; 设置http回调地址 请求URL&#xff1a; http://域名地址/setHttpCallbackUrl POST 请求头Headers:&#xff08;别忘了传&#xff09; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a; 参数名必…