leetcode-枚举算法

ops/2024/9/25 4:12:54/

1.leetcode.cn/problems/two-sum/description/" rel="nofollow">两数之和

题目一:两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。
你可以按任意顺序返回答案。

示例 1:
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。

def twoSum(nums, target):# 方法一:for i in range(len(nums)):for j in range(i + 1, len(nums)):if i != j and nums[i] + nums[j] == target:print([i, j])return [i, j]# 方法二:for idx, num in enumerate(nums):if idx + 1 == len(nums):breaknext_num = nums[idx + 1]if idx != idx + 1 and num + next_num == target:print([idx, idx + 1])return [idx, idx + 1]if __name__ == '__main__':nums = [2, 7, 11, 15]target = 9twoSum(nums, target)

2.leetcode.cn/problems/count-primes/description/" rel="nofollow">计数质数

题目二:计数质数
给定整数 n ,返回 所有小于非负整数 n 的质数的数量 。

示例 1:
输入:n = 10
输出:4
解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。

示例 2:
输入:n = 0
输出:0

示例 3:
输入:n = 1
输出:0

def countPrimes(n):res = 0for i in range(2, n):for j in range(2, i):if i % j == 0:breakelse:print(i)res += 1return resif __name__ == '__main__':countPrimes(10)

3.leetcode.cn/problems/count-square-sum-triples/solutions/869969/tong-ji-ping-fang-he-san-yuan-zu-de-shu-dfenx/" rel="nofollow">统计平方和三元组的数目

题目三:统计平方和三元组的数目

一个 平方和三元组 (a,b,c) 指的是满足 a2 + b2 = c2 的 整数 三元组 a,b 和 c 。
给你一个整数 n ,请你返回满足 1 <= a, b, c <= n 的 平方和三元组 的数目。

示例 1:
输入:n = 5
输出:2
解释:平方和三元组为 (3,4,5) 和 (4,3,5) 。

示例 2:
输入:n = 10
输出:4
解释:平方和三元组为 (3,4,5),(4,3,5),(6,8,10) 和 (8,6,10) 。

def countTriplets(n):import mathcount = 0for i in range(1,n+1):for j in range(1,n+1):c = int(math.sqrt(i*i+j*j))if c<=n and i*i+j*j==c*c:print(i,j,c)count += 1return countif __name__ == '__main__':countTriplets(5)

4.leetcode.cn/problems/number-of-common-factors/description/" rel="nofollow">公因子的数目

给你两个正整数 a 和 b ,返回 a 和 b 的 公 因子的数目。
如果 x 可以同时整除 a 和 b ,则认为 x 是 a 和 b 的一个 公因子 。

示例 1:
输入:a = 12, b = 6
输出:4
解释:12 和 6 的公因子是 1、2、3、6 。

示例 2:
输入:a = 25, b = 30
输出:2
解释:25 和 30 的公因子是 1、5 。

def commonFactors(self, a: int, b: int) -> int:count = 0for i in range(1,1001):if a%i==0  and b%i == 0:count += 1return count

5.leetcode.cn/problems/he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof/" rel="nofollow">文件组合

待传输文件被切分成多个部分,按照原排列顺序,每部分文件编号均为一个 正整数(至少含有两个文件)。传输要求为:连续文件编号总和为接收方指定数字 target 的所有文件。请返回所有符合该要求的文件传输组合列表。

注意,返回时需遵循以下规则:

每种组合按照文件编号 升序 排列;
不同组合按照第一个文件编号 升序 排列。

def fileCombination(self, target: int) -> List[List[int]]:i, j, res = 1, 2, []# 只要超过中间值,就会不满足条件,比如9=5+x,x永远需要比中值5while j <= target // 2 + 1:# 窗口内的值相加cur_sum = sum(list(range(i, j + 1)))if cur_sum < target:j += 1elif cur_sum > target:i += 1else:res.append(list(range(i, j + 1)))j += 1return res

6.leetcode.cn/problems/count-lattice-points-inside-a-circle/description/" rel="nofollow">统计圆内格点数目

给你一个二维整数数组 circles ,其中 circles[i] = [xi, yi, ri] 表示网格上圆心为 (xi, yi) 且半径为 ri 的第 i 个圆,返回出现在 至少一个 圆内的 格点数目 。

注意:

格点 是指整数坐标对应的点。
圆周上的点 也被视为出现在圆内的点。
在这里插入图片描述
在这里插入图片描述

class Solution:def countLatticePoints(self, circles: List[List[int]]) -> int:points = set()for x, y, r in circles:# 遍历x,y的最大值、最小值区间范围for i in range(x - r, x + r + 1):for j in range(y - r, y + r + 1):# 用两点之间的距离公式计算if (i - x) ** 2 + (j - y) ** 2 <= r**2:points.add((i, j))return len(points)

http://www.ppmy.cn/ops/115612.html

相关文章

VUE项目运行npm run dev命令后,自动打开浏览器导航到主页

VUE项目运行npm run dev命令后&#xff0c;需要再次输入字母 "o"才会打开浏览器导航到主页&#xff0c;要实现自动打开&#xff0c;需要修改项目中的 package.json 文件。 修改前: "scripts": {"dev": "vite ",......},修改后: "…

深入解析:Kubernetes 如何使用 etcd 作为配置中心和注册中心

在 Kubernetes 中&#xff0c;etcd 是核心的分布式存储组件&#xff0c;负责存储和管理集群的所有配置信息、状态数据以及服务注册信息。etcd 的高可用性和强一致性使得它成为 Kubernetes 的 “source of truth”&#xff0c;确保集群能够动态、高效地管理资源&#xff0c;并保…

【LLM学习之路】9月22日 第九天 自然语言处理

【LLM学习之路】9月22日 第九天 直接看Transformer 第一章 自然语言处理 自然语言处理发展史 只要看的足够多&#xff0c;未必需要理解语言 统计语言模型发展史 统计语言模型&#xff1a; 判断一个句子是否合理&#xff0c;就计算这个句子会出现的概率 缺点是句子越长越…

JetBrains系列产品无限重置免费试用方法

JetBrains系列产品无限重置免费试用方法 写在前面安装插件市场安装插件 写在前面 支持的产品&#xff1a; IntelliJ IDEA AppCode CLion DataGrip GoLand PhpStorm PyCharm Rider RubyMine WebStorm为了保证无限重置免费试用方法的稳定性&#xff0c;推荐下载安装2021.2.2及其…

Spring Boot和AOP将API输入输出数据存入数据库

在Spring Boot应用中使用AOP&#xff08;面向切面编程&#xff09;来记录API的输入输出信息&#xff0c;并将其存储到数据库表中是一个常见的需求。这可以通过以下几个步骤实现&#xff1a; 1. 添加依赖 首先确保你的项目中包含Spring AOP的支持。如果你使用的是Maven&#x…

steamdeck执行exe文件

命令行安装&#xff1a; sudo pacman xxxx //"xxxx"为软件名 &#xff0c;或者搜索“arch linux 软件安装命令” 安装wine及wineZGUI 命令行输入&#xff1a; sudo pacman -S wine 后面需要输入密码&#xff0c;deck设置的用户密码即可&#xff08;输入无反应是正…

【Linux实用教程】-03-用户权限命令

点个关注吧 &#x1f334; 3.1 Linux 的用户和组 &#x1f33e;3.1.1 用户的管理 添加用户 useradd 添加一个用户useradd test 添加 test 用户useradd test -d /home/t1 指定用户 home 目录 注意&#xff1a; 用户操作需要使用管理员权限操作&#xff0c;可以先使用…

【30天玩转python】正则表达式

正则表达式 正则表达式&#xff08;Regular Expression&#xff0c;简称 regex 或 RE&#xff09;是一种用来匹配字符串的强大工具。通过定义模式&#xff0c;正则表达式可以帮助我们查找、替换、或验证文本中的特定字符或字符串。在 Python 中&#xff0c;正则表达式通过 re …