python-小理的三角形

news/2024/9/17 7:49:35/ 标签: python, 算法

题目描述
小理有一个数组长度大小为 n ,数组中有 n 个正整数。
现在小理请你从其中选出三个元素(注意选择元素的下标不能相同,但是其值可以相同)组成一个三角形。
无法做到,请输出一行一个字符串"No solution",反之请输出这三个元素的值。
如果有多种组成三角形的元素组合,你可以输出任意一种。
输入格式
第一行是一个正整数 n 表示数组的元素个数。
接下来一行输入 n 个正整数 ai​ 表示每个数组元素的值。
输出格式
如无法做到,请输出一行一个字符串"No solution",反之请输出这三个元素的值。
如果有多种组成三角形的元素组合,你可以输出任意一种。
样例输入输出
样例输入#1
5
2 2 3 2 2
样例输出#1
2 2 3
样例输入#2
3
1 2 1
样例输出#2
No solution
数据范围
对于 100% 的数据,保证 1≤n≤100,1≤ai​≤109 。
提示说明
样例# 1 :使用 2 2 3 ,可以组成一个三角形。
样例# 2 :使用 1 2 1 ,不能组成一个三角形,无解。
来源/分类(难度系数:四星
二分查找 搜索 暴力 枚举 

 

完整代码展示:
n=int(input())
list_1=list(map(int,input().split()))
list_5=[]
sum=0
for i in range(0,len(list_1)):
      list_2=list_1[:]
      list_2.remove(list_2[i])
      for j in range(0,len(list_2)):
            list_3=list_2[:]
            list_3.remove(list_2[j])
            for k in range(0,len(list_3)):
                  list_4=[list_1[i],list_2[j],list_3[k]]
                  list_4.sort()
                  if list_4[-1]<list_4[0]+list_4[1]:
                      sum+=1
                      list_5.append(list_1[i])
                      list_5.append(list_2[j])
                      list_5.append(list_3[k])
if sum==0:
     print("No solution")
else:
       print(list_5[0],list_5[1],list_5[2])


代码解释
n=int(input()) ”,让用户输入数组中的元素数量n。
list_1=list(map(int,input().split()) ”,让用户输入数组中的元素,并将起储存在list_1中。
sum=0
 for i in range(0,len(list_1)):
       list_2=list_1[:]
       list_2.remove(list_2[i])
       for j in range(0,len(list_2)):
             list_3=list_2[:]
             list_3.remove(list_2[j])
             for k in range(0,len(list_3)):
                   list_4=[list_1[i],list_2[j],list_3[k]]
                   list_4.sort()
                   if list_4[-1]<list_4[0]+list_4[1]:
                       sum+=1
                       list_5.append(list_1[i])
                       list_5.append(list_2[j])
                       list_5.append(list_3[k])
       ”,sum为能组成三角形的元素组合的数量。任意抽取list_1中的三个元素,并将这三个元素储存在列表list_4。接着对list_4中的元素进行升序排序,判断list_4中的最大元素是否大于最小和次小元素之和:如果是,则让sum+1,将这三个元素添加进list_5中。
if sum==0:
       print("No solution")
 else:
        print(list_5[0],list_5[1]
”,判断sum是否为0,如果是:输出对应结果,否则打印list_5的前三个元素。


运行效果展示:

7cf41b023c304d939f6ab2a542b0acc1.jpg

d65232a5d2cf4fbeabb1dedacc65f30f.jpg

             (声明:以上内容均为原创)


http://www.ppmy.cn/news/1521585.html

相关文章

构建STM32智能平衡车项目:PID控制算法与蓝牙通信技术

一、项目概述 项目目标和用途 本项目旨在设计和实现一款基于STM32单片机的平衡车。平衡车是一种新型的个人交通工具&#xff0c;广泛应用于短途出行、休闲娱乐等场景。通过本项目&#xff0c;我们希望能够实现一款具备良好稳定性和操控性的平衡车&#xff0c;能够在不同的地形…

用矩阵乘法的底层原理来理解“特征融合”

大家好啊&#xff0c;我是董董灿。 在很多 AI 模型中&#xff0c;都会出现内积运算。无论是卷积/全连接还是 Transformer 架构中的矩阵乘法&#xff08;或线性映射&#xff09;&#xff0c;其核心运算逻辑都是内积运算。 因此&#xff0c;很多时候&#xff0c;我们也把内积运…

celery inspect stats

stats() 方法是Celery inspect 模块中的一个方法&#xff0c;用于收集和返回关于Celery worker的各种统计信息。这些统计信息可以帮助你了解worker的当前状态和性能指标。stats() 返回的结果是一个字典&#xff0c;其中键是worker的名字&#xff0c;值是一个包含多个统计指标的…

反射: 获取变量类型

更高级的编程语言&#xff0c;提供反射、解释机制&#xff0c;获取对象类型非常方便&#xff0c;因为运行时保存有对象的全部信息&#xff0c;也包括类型&#xff0c;而对于编译型语言而言&#xff0c;变量类型要靠编译期或构造/依赖类型某个存储类型的结构。 不同语言的反射 …

Python3.12兼容性问题-ImpImporter替换的解决办法

前言 目前现有的很多Python代码都是基于Python3.8、或者Python3.9的甚至是更早的版本。 当我们用最新的Python3.12来跑这些程序的时候&#xff0c;就会出现很多兼容性的问题。 本文就对“ImpImporter”和“zipimporter”的替换问题给出了一个解决方案。 1、错误描述 Attribu…

类加载过程中的静态成员初始化和实例成员初始化有什么区别?

在C#中&#xff0c;类的加载过程中涉及到静态成员初始化和实例成员初始化&#xff0c;它们之间有几个关键的区别&#xff1a; 初始化时机&#xff1a; 静态成员初始化&#xff1a;静态成员&#xff08;包括静态字段和静态构造函数中的代码&#xff09;在类第一次被引用时初始化…

骨传导耳机哪款好?精选五款热门骨传导耳机分享让你避免踩雷

目前在市面当中&#xff0c;骨传导耳机被称之为是黑科技耳机&#xff0c;骨传导耳机拥有很多优势&#xff0c;在听歌时不需要入耳&#xff0c;不会伤耳朵。随着骨传导耳机品牌的不断发展&#xff0c;人们在选购骨传导耳机时&#xff0c;也会觉得非常困难&#xff0c;可能一不小…

mysql的整理

插入数据&#xff1a; INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...); insert into employee(id,workno,name,gender,age,idcard,entrydate) values(1,1,Itcast,男,-1,123456789012345678,2000-01-01); insert into employee values(3,3,韦一笑,男,38,1…

OpenJudge | 全在其中

总时间限制: 1000ms 内存限制: 65536kB 描述 你设计了一个新的加密技术&#xff0c;可以用一种聪明的方式在一个字符串的字符间插入随机的字符串从而对信息进行编码。由于专利问题&#xff0c;我们将不会详细讨论如何在原有信息中产生和插入字符串。不过&#xff0c;为了验证…

项目实战系列三: 家居购项目 第二部分

家居购项目 &#x1f407;servlet合并&#x1f34e;方案一: 隐藏域&#x1f34e;方案二: 反射模板设计模式动态代理 &#x1f333;显示家居&#x1f333;添加家居&#x1f349;解决重复添加&#x1f349;后端数据校验说明&#x1f349;BeanUtils自动封装Bean &#x1f333;删除…

Synchronized、Reetrantlock

一、线程安全问题 多线程操作共享变量&#xff0c;由于该共享变量不是立刻可见的&#xff0c;读写不具备原子性&#xff0c;所以存在线程安全问题 二、售票案例 模拟售票案例&#xff0c;库存有10张票&#xff0c;有3个窗口(3个子线程)分别去卖&#xff0c;直到库存为0&#…

论文速读|重新审视奖励设计与评估:用于强健人型机器人站立与行走控制的方法

论文地址&#xff1a;https://arxiv.org/pdf/2404.19173 这篇论文为类人机器人站立和行走&#xff08;SaW&#xff09;控制器的持续可衡量改进奠定了基础。通过引入一套定量实际基准测试方法&#xff0c;作者展示了现有控制器的优缺点&#xff0c;并通过基准测试指导新控制器的…

【Go 快速入门】Go Test 工具 | 单元测试 | 基准测试

文章目录 go test工具单元测试子测试测试覆盖率 基准测试性能比较函数重置时间并行测试 本节项目地址&#xff1a;07-UnitTestBenchmarkTest go test工具 Go语言中的测试依赖go test&#xff0c;该命令是一个按照一定约定和组织的测试代码的驱动程序。在包目录内&#xff0c;…

QT实现简易记事本

QT的Qmainwindow实现简易记事本,不带有UI界面。 1、功能展示 1、编辑文件时&#xff0c;文件名左上角有个“*”,代表文件未保存 2、菜单栏有文件、编辑的选项 3、工具栏有保存、新建、打开、调节字体、调节颜色。 4、文件菜单中有&#xff0c;新建&#xff0c;保存、打开、…

构建私有CA和证书

一、准备 两台虚拟机 192.168.252.148 CA 192.168.252.149 客户端 二、构建私有CA 192.168.252.148 CA 安装openssl 1.检查是否存在 rpm -qa openssl 2.安装或者更新openssl yum install openssl openssl-devel -y 查看CA相关配置 /etc/pki/tls/openssl.cnf这个文件是…

Golang | Leetcode Golang题解之第391题完美矩形

题目&#xff1a; 题解&#xff1a; func isRectangleCover(rectangles [][]int) bool {type point struct{ x, y int }area, minX, minY, maxX, maxY : 0, rectangles[0][0], rectangles[0][1], rectangles[0][2], rectangles[0][3]cnt : map[point]int{}for _, rect : range…

基于Vector Davinci SIP的标定实现方法

标定是什么 在汽车软件开发过程中&#xff0c;软件做好之后一般都需要在实车上进行调试&#xff0c;尤其是底盘领域&#xff0c;软件的性能与实车参数、状态有很大的关系&#xff0c;很多参数在开发阶段没办法直接确定最优值&#xff0c;只能是先定一个大概的默认值&#xff0…

maven-helper插件解决jar包冲突实战

经常遇到jar包冲突问题&#xff0c;今天梳理一下&#xff1a; 1、打开idea 2、安装后 打开pom文件 点击 3、 4、 5、 6、 7、 8、 9、 可参考的类似文章

Day 8:77 组合

77 组合 1. 题目描述2. 解题思路3. 代码实现4. 回溯模板 1. 题目描述 77 组合 2. 解题思路 该题可以使用回溯类型的模板来解决&#xff0c;注意到可以进行剪枝操作。 3. 代码实现 class Solution {vector<vector<int>> res;vector<int> path; public:ve…

nodejs发邮件如何实现自动化邮件发送功能?

nodejs发邮件的安全性探讨&#xff1f;使用nodejs发邮件的教程&#xff1f; 在处理邮件发送这类重复性任务时&#xff0c;使用Node.js发邮件的功能可以极大地简化工作流程。AokSend将详细探讨如何利用Node.js发邮件来实现自动化邮件发送功能&#xff0c;确保您的邮件发送任务既…